0

ユーザーの を比較しようとしてumaskいます。比較中にエラーが発生しました。私が使用しているコードは

val=`su - user -c "umask" | tail -2 | sed -n "/[0-9]/p"`
if [ $val -eq 744 ]
then

   echo "477 found."

fi

これを実行すると、次のようなエラーが発生します。

sh: ^[H: A test command parameter is not valid.

=比較コマンドで試してみましたが、まだ機能していません。

提案があれば教えてください。

よろしく。


valとして初期化されています0

これをルートとして実行しているため、ログインはありません。

引用もしてみました。

4

2 に答える 2

2

テスト式で変数名を引用する必要があります。

if [ "$val" -eq 744 ]

理由はこちらをご覧ください。

于 2012-09-11T07:35:47.003 に答える
1

あなたのコードは私のマシンでうまく実行されます。私が提案できる唯一の解決策は、わずかに異なる構文を使用することです.時には、異なるbashバージョンが1つの構文について不平を言い、別の構文を受け入れます:

val=`su - user -c "umask" | tail -2 | sed -n "/[0-9]/p"`
if [[ $val -eq 477 ]] ; then
   echo "477 found."
fi

との違いについては、こちらをご覧ください。[ cond ][[ cond ]]

于 2012-09-11T09:10:27.973 に答える