我有一个简单的单行代码,可以在终端中完美运行:
history | sort -k2 | uniq -c --skip-fields=1 | sort -r -g | head
它的作用:给出用户最近最常用的 10 个命令。 (不要问我为什么会想要实现这样的事情)
我启动了一个编辑器,并在开头输入了一个 #!/bin/bash
:
#!/bin/bash
history | sort -k2 | uniq -c --skip-fields=1 | sort -r -g | head
假设我将它保存为 script.sh
。然后,当我转到同一个终端时,键入 bash script.sh
并按 Enter,没有任何反应。
到目前为止我已经尝试过:谷歌搜索。许多人都有类似的痛苦,但他们通过 sudo su
或添加/删除空格得到了解决。这些都不适合我。知道我可能哪里出错了吗?
编辑:
我想从终端本身做这件事。运行此脚本的系统可能提供也可能不提供更改主文件夹中文件的权限。
BryceAtNetwork23 建议的另一个问题,history
命令有什么特别之处阻止我们执行它?
最佳答案
查看您的历史记录仅在交互式 shell 中才有意义。使该命令成为函数而不是独立脚本。在你的 ~/.bashrc 中,放入
popular_history() {
history | sort -k2 | uniq -c --skip-fields=1 | sort -r -g | head
}
关于linux - 历史命令在终端中有效,但在作为 bash 脚本编写时无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21762356/