我有一个名为deps的变量:
deps='word1 word2'
Run Code Online (Sandbox Code Playgroud)
我想为变量的每个单词添加一个前缀.
我尝试过:
echo $deps | while read word do \ echo "prefix-$word" \ done
Run Code Online (Sandbox Code Playgroud)
但我得到:
bash:意外令牌"完成"附近的语法错误
任何帮助?谢谢
SLe*_*ort 16
用sed:
$ deps='word1 word2'
$ echo "$deps" | sed 's/[^ ]* */prefix-&/g'
prefix-word1 prefix-word2
Run Code Online (Sandbox Code Playgroud)
对于表现良好的字符串,最好的答案是:
printf "prefix-%s\n" $deps
Run Code Online (Sandbox Code Playgroud)
正如123在对fedorqui的回答的评论中所建议的那样.
说明:
$deps根据$IFS(默认为" \n\t")分割内容printfprintf 评估每个提供的参数的模式,并将输出写入stdout.printf 是内置的shell(至少对于bash而言)并且不会分叉另一个进程,因此这比基于sed的解决方案更快.