HDe*_*007 -1 bash shell-script history-expansion
以下命令在命令行中运行
rsync -avh -r /Source/09_03_2016/ /Destination/
echo $(basename !:3)
Run Code Online (Sandbox Code Playgroud)
输出 09_03_2016
但是当我在 shell 脚本中执行此操作时,它不起作用
#! /bin/bash
/usr/bin/rsync -avh -r /Source/09_03_2016 /Destination/;
echo $(basename !:3)
Run Code Online (Sandbox Code Playgroud)
输出!:3
在脚本中使用以下指令:
set -o history
set -o histexpand
Run Code Online (Sandbox Code Playgroud)
这将启用历史扩展,默认情况下仅针对交互式 shell 启用该历史扩展。
有关详细信息,请参阅man bash
部分HISTORY EXPANSION
和SHELL BUILTIN COMMANDS
命令set
。