我的 bash 脚本有什么问题:var=(command1 | command2)?

What is wrong with my bash script: var=(command1 | command2)?

我的 bash 脚本中有一行:

  foldername=(echo ${newpath[start]} | awk 'BEGIN{FS="/: ";} {print ;}')

它工作正常。但是在对我的脚本文件的其他部分进行了一些编辑之后,它给了我以下错误:

line 98: syntax error near unexpected token `|'
line 98: `      foldername=( echo ${newpath[start]} | awk 'BEGIN{FS="/: ";} {print ;}' )'

谁能告诉我我的代码有什么问题?

=之后插入一个$:

foldername=$(echo ${newpath[start]} | awk 'BEGIN{FS="/: ";} {print ;}')

在你的命令行中试试这个:

a=(echo yes| sed 's@yes@no@g')

你会得到

bash: syntax error near unexpected token `|'

那是因为您在左括号前少了“$”。以下作品

a=$(echo yes| sed 's@yes@no@g')