我有一个这样的剧本:
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:意外令牌
<' ./diskcheck.sh: line 42:
附近的语法错误&lt; &lt;(echo“$ dyski”)'
它出了什么问题?在此先感谢您的帮助。
答案 0 :(得分:2)
我怀疑你错误地认为/bin/sh
到处是bash
。许多Linux发行版使用更简单的shell(通常为dash
,有时为ksh
)为/bin/sh
;如果您想使用bash
特定扩展名(例如<(pipeline)
语法),则应明确使用bash
作为shell。