11

以下のような変数があります。

variable = This script is not found

if [[ "$variable" = ~ "not found" ]];
then
echo "Not Found"
else
echo "Its there"
if

imを実行している間、エラーを下回ります。

line 4: syntax error in conditional expression
./test.sh: line 4: syntax error near `found"'
./test.sh: line 4: `if [[ "$variable" = ~ "not found" ]]; '

誰かが私を指摘できますか、ここで何が欠けていますか?

4

4 に答える 4

25
LIST="some string with a substring you want to match"
SOURCE="substring"

if echo "$LIST" | grep -q "$SOURCE"; then
    echo "matched";
else
    echo "no match";
fi

幸運を ;)

于 2013-02-27T18:11:32.197 に答える
11

示されたポイントでこれをあなたのバージョンと比較してください:

variable="This script is not found"  # <--

if [[ "$variable" =~ "not found" ]]  # <--
then
    echo "Not Found"
else
    echo "Its there"
fi  # <--

割り当てで=の前後にスペースを入れることはできません。また、スペースを含む文字列リテラルを引用符で囲む必要があります。末尾は必要ありません; あなたがそれをそれ自身の線に置くつもりなら。そして、if-thenは「if」ではなく「fi」で終わります。

于 2013-02-27T18:57:44.653 に答える
2

これがあなたのifステートメントの正しい構成です

if [[ "$variable" =~ "not found" ]]; then
      echo "Not Found";
else
      echo "Its there";
fi
于 2013-02-27T18:23:25.633 に答える
-1

私は常にtrueまたはfalseのいずれかで同じ結果を返す以下のコードを試しました

if [[ "$variable" =~ "not found" ]]; then
      echo "Not Found";
else
      echo "Its there";
fi
于 2016-03-31T09:33:23.737 に答える