次のスクリプトが「予期しない演算子」メッセージを表示しsh
ますbash
。
#!/bin/sh
if [ $UID -ne 0 ]
then
echo "You must be root."
exit 1
else
echo "Open sesame."
exit 0
fi
ベストアンサー1
すべてのシェルが変数を定義するわけではありませんUID
。これはbashとzshの機能だけです。他のシェルではUID
この変数は定義されていないため、テストコマンドは[ -ne 0 ]
構文エラーに拡張されます。
ユーザーIDを取得する便利な方法は、次を使用することです。id
便利です。
if [ "$(id -u)" -ne 0 ]; then …