次のコマンドはコマンドラインから実行されます。
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)
出力! :サム
答え1
スクリプトで次のディレクティブを使用します。
set -o history
set -o histexpand
これにより、基本的に対話型シェルでのみ有効な履歴拡張が可能になります。
詳しくは、man bash
セクションHISTORY EXPANSION
とSHELL BUILTIN COMMANDS
コマンドを参照してくださいset
。