スクリプトで!$を使用できませんか?

スクリプトで!$を使用できませんか?

なぜこれがうまくいかないのだろうか。

#!/bin/bash 

ls /bin
ls !$

2回実行すると予想していましたが、ls /bin2回目には!$解釈されず、エラーが発生します。

何か抜けましたか?それとも!$コマンドラインでのみ機能しますか?

man bash(Macで)関連部分が見つかりません

ベストアンサー1

歴史そして歴史的拡張シェルが非対話式で実行されると、デフォルトでは無効になります。

以下を行う必要があります。

#!/bin/bash 

set -o history
set -o histexpand

ls /bin
ls !$

または:

SHELLOPTS=history:histexpand bash script.sh

script.sh実行可能なすべてのbashインスタンスに影響します。

おすすめ記事