拦截并阻止命令在bash中运行

时间:2019-05-03 04:19:34

标签: bash

是否可以拦截bash中的所有命令并阻止某些命令执行?与“ trap”命令一样,仅不允许进一步执行该命令。

我是一名Web开发人员,目前正在从事一个小型项目/脚本,通过动态添加不同的别名来帮助Web开发人员日常生活。例如,作为一名Web开发人员,在Ubuntu上通常以/ var / www /结构托管所有项目,因此可以在该(/ var / www)文件夹中为这些文件夹加上别名。我想稍微改善一下脚本,并根据构建的框架为项目添加别名。如果是Magento 2,则应通过运行setup:upgrade来运行“ bin / magento setup:upgrade”。 我已经尝试过陷阱“某事”调试,但是据我所知,不可能阻止前面的命令。 谢谢!

2 个答案:

答案 0 :(得分:4)

您可以通过滥用let test = UITextField() test.textContentType = UITextContentType.emailAddress 来否决命令:

command_not_found_handle

# Save the PATH realpath="$PATH" # Set a PATH without commands (weirdly can't be empty) PATH="/" command_not_found_handle() ( if [[ "$1" == *d* ]] then echo "Sorry, no commands with 'd' allowed" >&2 return 1 else PATH="$realpath" unset command_not_found_handle "$@" fi ) 中使用它,您可以运行.bashrcls,但不能运行chownfind。请注意,它不会影响功能或内置函数。

答案 1 :(得分:3)

是的,有可能。 window.addEventListener('popstate', () => { debugger; this.doSomeOtherStuff. } 是一个好的开始,如果要阻止某些命令,则必须将其与trap ... DEBUG关联。然后,如果您以非零状态从陷阱返回,则将不执行该命令。

shopt -s extdebug