ソースエラーがある==実行

ソースエラーがある==実行

次のコードを実行すると、奇妙なエラーが発生しました。

#!/usr/bin/env bash

a="a"
b="a"

if [ "$a" == "$b" ]
then
  echo "Eq"
fi

chmod u+x script.sh

その後、ファイルを実行すると以下が表示されますEq

$ ./script.sh
Eq

ただし、これをソーシングするとエラーが発生します。

$ source script.sh
script.sh:6: = not found

このエラーの原因は何ですか?

ベストアンサー1

スクリプトが実行されると、現在のシェルはコマンドを実行します。 zshでは、=比較するには単一のコマンドを使用する必要があります。

$ echo '[ a == a ]' | zsh
zsh: = not found
exit code: 1
$ echo '[ a = a ]' | zsh
$

おすすめ記事