この質問にはすでに回答があります :スクリプトで履歴拡張が無効になっていますか?
(1つの回答)
1年前に閉鎖されました。
Linux
(1つの回答)
1年前に閉鎖されました。
以下のコマンドはコマンドラインで機能します
rsync -avh -r /Source/09_03_2016/ /Destination/
echo $(basename !:3)
出力09_03_2016
しかし、シェルスクリプトでこれを行うと、機能しません
#! /bin/bash
/usr/bin/rsync -avh -r /Source/09_03_2016 /Destination/;
echo $(basename !:3)
出力!:3
承認された回答:
スクリプトで次のディレクティブを使用します。
set -o history
set -o histexpand
これにより、デフォルトでインタラクティブシェルに対してのみ有効になっている履歴拡張が有効になります。
man bash
を参照してください セクションHISTORY EXPANSION
およびSHELL BUILTIN COMMANDS
コマンドset
詳細については。