echo $HISTSIZE は、シェルスクリプトで実行しても印刷されませんが、コマンドラインでは機能します。

echo $HISTSIZE は、シェルスクリプトで実行しても印刷されませんが、コマンドラインでは機能します。

echoコマンドのみを使用して1.shというシェルスクリプトファイルを作成しました。

echo $HISTSIZE

1.shファイルを実行可能にし、次のコマンドを実行して端末で実行してみました。

./1.sh

端末に空白行が印刷されました。ただし、シェルプロンプトでこのコマンドを実行すると、1000が出力されます。

シェルスクリプトでエコーが機能しないのはなぜですか?

ベストアンサー1

スクリプトは、デフォルトで履歴が無効になっている非対話型シェルで実行されます(記録をサポートしていると仮定しますが、sh今日のほとんどの実装ではそうです)HISTSIZE

(少なくともBashでは)履歴を強制的に有効にすると、デフォルト値が表示されます。

set -o history
echo $HISTSIZE

おすすめ記事