bash:PROMPT_COMMAND 不执行多个命令,单个命令有效

标签 bash shell

在~/.bashrc
假设我有一个函数说,

function my_function {  
echo "Test:I am in myfunc"  
}  
  • 如果我一个人做
    export PROMPT_COMMAND='echo -ne "\033]0;${PWD##*/}\007"'
    然后工作正常。
  • 如果我这样做
    导出 PROMPT_COMMAND="my_function;$PROMPT_COMMAND"
    然后就可以正常工作了。

  • 但如果我这样做 export PROMPT_COMMAND="'echo -ne "\033]0;${PWD##*/}\007"';my_function;$PROMPT_COMMAND"
    然后它不设置选项卡名称或调用 my_function。
    请帮助..

最佳答案

啊,是的,有时那些嵌套的单引号/双引号会变得很困难。为什么不尝试将第一个命令(将选项卡名称设置为当前目录)移动到 my_function 中。所以试着把它放到你的 ~/.bashrc 中:

function my_function {
    echo -ne "\033]0;${PWD##*/}\007"
    echo "Test:I am in myfunc"
}

export PROMPT_COMMAND="my_function;$PROMPT_COMMAND"

关于bash:PROMPT_COMMAND 不执行多个命令,单个命令有效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666767/

相关文章:

shell - grep -v '^#' 做什么

linux - 如何使用 awk 从文件中删除一行并按某个字符串过滤

linux - 如何明智地将两个 CSV 文件与 Linux 列合并?

bash - 在 "vagrant ssh"时自动 chdir 到 vagrant 目录

php - 打开: failed to open stream: No such file or directory - but file/directory exists

regex - 用 SED 将数字用双引号括起来

linux - 如何在 ubuntu 14 中安装特定版本的软件包?

linux - 匹配以特定字母开头并排除某些单词的行

linux - Bash 重定向和标准输入

linux - 为什么linux shell中带大括号的 `{cat,filename}` Group命令可以运行?