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 ディストリビューションでは、より単純なシェル (多くdashの場合、場合によってはksh) が使用されてい/bin/shます。構文bashなど固有の拡張機能を使用する場合は、シェルとして明示的に使用する必要があります。<(pipeline)bash

于 2012-04-08T09:26:49.713 に答える