私はDebianシステム8.6で基本的なBashスクリプトを学んでいます。条件付き構文を作成する方法を示す本の例を読みました。以下にしておきます:
#!/bin/bash
#Filname: CondConst.sh
if [$UID -ne 0]; then
echo "Non root User."
else
echo "Root User."
fi
このコードを含むスクリプトを実行すると、次のエラーメッセージと結果が表示されます。
[1000: command not found
Root User.
私はいくつかの方法(引用符とスペースを使用)でコードを修正しましたが、比較のために角かっこ構文の使用方法を理解できませんでした。私は次のような他の構文を使用してこの問題を解決しました。
#!/bin/bash
#Filname: CondConst.sh
if (($UID!=0)); then
echo "Non root User."
else
echo "Root User."
fi
可能であれば、なぜ角かっこを使用できないのかを説明できますか?
本当にありがとうございました。
答え1
あなたのエラーは後ろにスペースを入れていないので、[
コマンドとして扱われますので、[1000
スペースを入れてください。
#!/bin/bash
#Filname: CondConst.sh
if [ $UID -ne 0 ]; then
echo "Non root User."
else
echo "Root User."
fi