81

私のスクリプト全体は現在これです:

#!/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

どうすればこれを修正できますか?

4

4 に答える 4

188

これは問題です:

if [[$variable == $blanko]];

角括弧内にはスペースが必要です。次のように使用します。

[[ "$variable" == "$blanko" ]] && echo "Nichts da!" || echo "$variable"
于 2013-11-01T18:55:05.047 に答える
19

関連する注意事項として、スペースも前後に必要です[ ]

if [ "$variable" = "$blanko" ]; then
  # more code here
fi

[ ]単語の分割とグロビングを防ぐために、変数は内部で二重引用符で囲む必要があることに注意してください。二重引用符は、比較される変数のいずれかが設定されていない場合にも役立ちます。それ以外の場合、シェルは構文エラーをスローします。

次の投稿を見て、なぜ前後にスペースが必要なのかを理解してください[ ]

同様にスペースを必要とする他の構文要素について話している別の関連記事:

[[ ]]最後に、この投稿ではとの違いについて説明してい[ ]ます。


関連している:

于 2017-11-02T05:11:27.933 に答える
0

#!/bin/bash次のようなbashスクリプトを使用している場合は、スクリプトの上で使用してください:文字if [[ $partition == "/dev/sda2" ]]; then列を比較してスクリプトを実行するに./scriptname.shbash scriptname.sh

于 2019-07-26T04:37:48.313 に答える