无法回显最后一次在.sh脚本中执行的命令

时间:2019-04-17 09:50:08

标签: bash scripting sh command-substitution

上使用以下内容
  

cmd = $(uname -a)

     

printf“ [”!:0“]”

给我

[cmd1=Linux localhost.localdomain 2.6.32-300.10.1.el5uek #1 SMP Wed Feb 22 17:37:40 EST 2012 x86_64 x86_64 x86_64 GNU/Linux]

但是何时在test.sh

中完成
#!/bin/bash
output=$(uname -a)


printf "["!:0"]"

我要

[!:0]

谢谢。

1 个答案:

答案 0 :(得分:1)

如果您需要在bash(v4+)脚本中执行上一条命令,

#!/bin/bash -i
# -i: interactive mode, enable history inside script
set -o history  # enable history, for old bash versions

cmd=$(uname -a)
history | sed -n 'x;${s/ *[0-9]\+ *\(\S*\)/\1/p}'  # print the line before last history entry after removing index