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:第 42 行:未<' ./diskcheck.sh: line 42:完成的令牌附近出现语法错误 <<(echo "$dyski")'

它出什么问题了?提前感谢您的帮助。

4

1 回答 1

2

我怀疑你错误地假设它/bin/sh无处不bash在。许多 Linux 发行版使用更简单的 shell(通常dash,有时ksh)作为/bin/sh; 如果你想使用bash特定的扩展,比如<(pipeline)语法,你应该明确地使用bash作为 shell。

于 2012-04-08T09:26:49.713 回答