
echoコマンドのみを使用して1.shというシェルスクリプトファイルを作成しました。
echo $HISTSIZE
1.shファイルを実行可能にし、次のコマンドを実行して端末で実行してみました。
./1.sh
端末に空白行が印刷されました。ただし、シェルプロンプトでこのコマンドを実行すると、1000が出力されます。
シェルスクリプトでエコーが機能しないのはなぜですか?
答え1
スクリプトは、デフォルトで履歴が無効になっている非対話型シェルで実行されます(記録をサポートしていると仮定しますが、sh
今日のほとんどの実装ではそうです)HISTSIZE
。
(少なくともBashでは)履歴を強制的に有効にすると、デフォルト値が表示されます。
set -o history
echo $HISTSIZE