我试图在shell脚本中获取命令历史记录。它不工作,除非我拿出#!/ bin/bash在shell脚本中使用历史命令
任何线索我如何得到它的工作,或达到相同的效果,而不删除#!/ bin/bash?
任何人都知道它为什么会删除#!/ bin/bash?
我试图在shell脚本中获取命令历史记录。它不工作,除非我拿出#!/ bin/bash在shell脚本中使用历史命令
任何线索我如何得到它的工作,或达到相同的效果,而不删除#!/ bin/bash?
任何人都知道它为什么会删除#!/ bin/bash?
当你取出shebang线时,它将由当前shell运行。除非您使用“交互式”外壳,否则Bash不会有任何历史记录。试着改变你的家当行:
#!/bin/bash -i
这将导致bash
启动一个交互的shell。
有趣。我的解决方案最终是使用source命令运行脚本。使用#!/ bin/bash -i和从源代码运行脚本有什么区别? – MVTC 2012-04-02 03:47:24
@MVTCplusplus当您输入脚本时,它将在当前shell的上下文中运行。任何分配/更改的变量,函数等都将在您运行它的shell中显示(包括您可能使用history命令对shell的历史进行的任何更改)。当您启动一个新的交互式shell时,这些更改将保持在运行脚本的shell的本地。至于你想要哪一个,这取决于你的脚本应该做什么。但是,采购脚本也是一个合理的解决方案。 – FatalError 2012-04-02 14:05:40
您可以先向我们展示您迄今为止所做的工作。 – 2012-04-02 01:54:53