14 bash backticks ps1 command-substitution
此命令成功
$ PS1='$(date +%s) $ ' 1391380852 $
但是,如果我添加换行符,则会失败
$ PS1='$(date +%s)\n$ ' bash: command substitution: line 1: syntax error near unexpected token `)' bash: command substitution: line 1: `date +%s)'
如果我使用反引号就行了
$ PS1='`date +%s`\n$ ' 1391381008 $
但是反叛是沮丧的.那是什么导致了这个错误?
GNU bash, version 4.2.45(6)-release
Cha*_*ffy 19
您可以轻松消除解析的歧义,以防止遇到任何此类错误(虽然我无法自己重现):
PS1='$(date +%s)'$'\n$ '
Run Code Online (Sandbox Code Playgroud)
此$'\n'
语法分析为文字换行符,而'\n'
解析为包含两个字符\n
转义序列的字符串.
有关如何$''
区别''
(扩展反斜杠转义序列)的更多信息,请参阅Bash Hackers Wiki.