当涉及带空格的变量时,有没有办法使bash循环正常工作?
提前感谢你的帮助 我正在编写一段代码,用于在我的Mac电脑上自动设置自制软件,这段代码有问题。 以下是我目前拥有的代码:当涉及带空格的变量时,有没有办法使bash循环正常工作?,bash,macos,loops,unix,homebrew,Bash,Macos,Loops,Unix,Homebrew,提前感谢你的帮助 我正在编写一段代码,用于在我的Mac电脑上自动设置自制软件,这段代码有问题。 以下是我目前拥有的代码: #!/usr/bin/env bash brew=" app1 test app2 app3 " for i in $brew; do echo brew install $i done 我的预期输出是: brew install app1 test brew install app2 brew install app3 brew inst
#!/usr/bin/env bash
brew="
app1 test
app2
app3
"
for i in $brew; do
echo brew install $i
done
我的预期输出是:
brew install app1 test
brew install app2
brew install app3
brew install app1
brew install test
brew install app2
brew install app3
但是,脚本的实际输出如下所示:
brew install app1 test
brew install app2
brew install app3
brew install app1
brew install test
brew install app2
brew install app3
我尝试在循环中引用“I”和“$brew”命令,但没有结果。如果任何人有任何潜在的解决方案,请分享!谢谢 您需要使用数组 如果需要包含空格的数组元素,请引用以下元素:
brew=("app1 test" app2 app3)
在数组元素上循环时,还要使用引号保留其中的空格:
for i in "${brew[@]}"; do
echo brew install $i
done
另见: