ast*_*nic 23 bash command-line
我想运行一个命令,例如
echo "foobar";
Run Code Online (Sandbox Code Playgroud)
在每个命令之后,由用户输入.
两种情况:
如何完成上述两种情况?
注意:我不想为此目的使用提示,(保留PS1变量).
Pau*_*ce. 15
正如l0b0建议的那样,你可以PROMPT_COMMAND用来做你的第二个请求而你不必触摸PS1.
做你的第一个请求,你可以trap将DEBUG伪信号:
trap 'echo "foobar"' DEBUG
Run Code Online (Sandbox Code Playgroud)
对于第二部分,您可以使用declare -r PROMPT_COMMAND="echo 'foobar'":它在显示提示之前执行.请注意,不会为每个命令运行它,例如管道或命令组.
请注意,任何解决方案都有可能使用户陷入困境,因此理想情况下,您应该只调用不输出任何内容的命令(否则任何输出处理几乎是不可能的),并且用户无法使用它们(以避免它们伪造或腐败输出).
| 归档时间: |
|
| 查看次数: |
7915 次 |
| 最近记录: |