我对bash缺乏经验。我试图将最后一个运行命令保存为变量,这就是我所拥有的:
#!/bin/bash
prev=$(fc -ln -1)
echo $prev
这不会打印任何内容。保存完最后一个命令后,我计划对此行进行编码:
valgrind --leak-check=full $prev
那么我做错了什么?
答案 0 :(得分:1)
fc
引用当前shell的历史记录。在shell脚本中运行时,它引用该新shell的历史记录。如果使用别名或shell函数,则fc
将在当前shell中运行。您也可以获取相同效果的脚本文件。
$ cat go
#!/bin/bash
set -o history
echo a b c
fc -nl -1
$ ./go
a b c
echo a b c
$ alias zz='fc -nl -1 | tr a-z A-Z'
$ zz
ALIAS ZZ='FC -NL -1 | TR A-Z A-Z'
答案 1 :(得分:1)