2012-04-08 62 views
1

我有一個這樣的腳本:慶典 - 附近意外的標記語法錯誤`<」

dyski=$(df -h) 

while read wiersz; do 

i=0; 
for token in $wiersz 
do 

    case $i in 
     0) 
      tresc="$tresc\nSystem plików: $token"; 
     ;; 

     1) 
      tresc="$tresc\nRozmiar całkowity: $token"; 
     ;; 

     2) 
      tresc="$tresc\nUżyte miejsce : $token"; 
     ;; 

     3) 
      tresc="$tresc\nDostępne miejsce: $token"; 
     ;; 

     4) 
      tresc="$tresc\nProcentowe użycie: $token"; 
     ;; 
    esac 

    i=$((i+1)) 
done 

tresc="$tresc\n" 

done < <(echo "$dyski") 

當我在我的Mandriva運行它,它工作正常。但是當我將它移動到SLES11時,它會給出錯誤:

./diskcheck.sh: line 42: syntax error near unexpected token <' ./diskcheck.sh: line 42: done < <(echo "$dyski")'

它有什麼問題?預先感謝您的幫助。

+0

我看到<<'.... – 2012-04-08 09:20:34

+0

看起來你有兩個「<」字符,好友。 – 2012-04-08 09:24:03

回答

2

我懷疑你犯了錯誤,假設/bin/shbash無處不在。許多Linux發行版使用更簡單的shell(通常爲dash,有時爲ksh),作爲/bin/sh;如果要使用bash特定的擴展名(例如<(pipeline)語法),則應明確使用bash作爲shell。

相關問題