私のスクリプト全体は現在これです:
#!/bin/sh
clear;
blanko="";
# Dummy-Variablen
variable=Testvariable;
if [[$variable == $blanko]];
then
echo "Nichts da!"
else
echo $variable
fi
そして私が入ったら
TestSelect.sh
私は得る
/usr/bin/TestSelect.sh: line 6: [[Testvariable: command not found
Testvariable
どうすれば修正できますか?
これは問題です。
if [[$variable == $blanko]];
角括弧内にスペースが必要です。次のように使用します。
[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
関連するメモでは、[ ]
の周りにもスペースが必要です。
if [ "$variable" = "$blanko" ]; then
# more code here
fi
Wordの分割とグロビングを防ぐために、変数は[ ]
内で二重引用符で囲む必要があることに注意してください。二重引用符は、比較される変数のいずれかが設定されていない場合にも役立ちます。そうでない場合、シェルは構文エラーをスローします。
次の投稿を見て、[ ]
の周りにスペースが必要な理由を理解してください。
スペースを必要とする他の構文要素について語る別の関連記事:
最後に、この投稿では[[ ]]
と[ ]
の違いについて説明しています。
関連する:
#!/bin/bash
のようなbashスクリプトを使用している場合は、if [[ $partition == "/dev/sda2" ]]; then
を使用して文字列を比較し、./scriptname.sh
またはbash scriptname.sh
でスクリプトを実行します。