shell变量赋值

时间:2017-09-12 08:43:52

标签: bash function shell

我想在提示中显示当前工作分支,如下所示:

f() { echo -n $(awk -F/ '{print $3}' <(git symbolic-ref HEAD));};  PS1="\$(f) $ "

如果我在PS1赋值中的函数调用命令替换之前删除了反斜杠字符,那么在更改git分支期间,函数将 NOT 正确调用。只有在存在反斜杠时才会得到预期的行为。我想知道这&#34; \&#34;使函数调用适当吗?

此外,以下对PS1变量的直接赋值不会在更改分支时更新提示字符串,即使此处存在\。

export PS1="\$(awk -F/ '{print $3}' <<< `git symbolic-ref HEAD`) $ "

让我知道如何纠正它。

1 个答案:

答案 0 :(得分:0)

无需使用echo -n,只需使用printf中的awk即可在不换行的情况下进行打印:

f() { awk -F/ '{printf "%s", $3}' <(git symbolic-ref HEAD); }

然后在PS1中使用它作为:

PS1='$(f) $ '