有时候我需要将最后输入的shell命令保存到剪贴板中。
我可以这样做:
事情并不如预期那样运行。特别是,剪贴板的内容变成了字面上的
我尝试了其他方法,但都没有奏效。在脚本中使用
几乎可以工作,但是当尝试修改(例如剪切或替换)历史记录的输出时,所有操作都会失败,因为它是一个内置命令。
有没有一种方法可以通过正常的标准输出获取shell的最后一个命令?
echo !! | xsel --clipboard
哪个成功地运作。
但是当我尝试给上述命令起别名时:
alias echoxs='echo !! | xsel --clipboard'
事情并不如预期那样运行。特别是,剪贴板的内容变成了字面上的
!!
。显然,我对bash如何预处理命令和别名有所遗漏。我原本希望别名像C宏一样直观,键入别名应该等同于键入其目标。我尝试了其他方法,但都没有奏效。在脚本中使用
HISTFILE
不起作用,因为要么命令被shell会话缓存而不立即写入文件,要么多个终端会干扰文件,导致文件中的最后一个命令并不总是当前会话中的最后一个命令。alias='history 1 | xsel --clipboard'
几乎可以工作,但是当尝试修改(例如剪切或替换)历史记录的输出时,所有操作都会失败,因为它是一个内置命令。
有没有一种方法可以通过正常的标准输出获取shell的最后一个命令?
info bash
并搜索alias
以获取详细信息。 - Keith Thompson