我只想将此命令的结果存储在变量中,但它不起作用,
echo "${dir##*/}" | sed -r 's/[$ :@?!]+/_/g'
试试。
fixfolderNamesTest.sh: line 76: syntax error near unexpected token `|'
line=(${dir##*/} | sed -r 's/[$ :@?!]+/_/g')
echo "$line"
答案 0 :(得分:0)
为了进一步简化您的问题,即使以下情况也会提供相同的错误:
$ ls
a.csv cr f1 f2 file s t
$ ls | grep file
file
$ echo $out
$ out=(ls | grep file)
-bash: syntax error near unexpected token `|'
$ echo $out
$ out=`ls | grep file`
$ echo $out
file
我建议使用反引号将输出捕获到变量中。