Zsh(MacOS)脚本循环打开多词名称应用失败求助
解决Zsh脚本中多单词应用名无法打开的问题
你的问题出在两个关键细节上:错误使用中文引号,以及变量引用时未加引号导致参数被拆分。以下是修正后的代码和说明:
修正后的基础写法
workPlace () { for app in Slack Docker "Google Chrome" "GitHub Desktop" do open -a "$app" done } workPlace
更规范的Zsh数组写法
用数组存储应用列表,可读性和扩展性更强:
workPlace () { local apps=(Slack Docker "Google Chrome" "GitHub Desktop") for app in "${apps[@]}" do open -a "$app" done } workPlace
核心修正点:
- 替换中文引号
“”为英文双引号"":Zsh不识别中文引号作为字符串边界,会将其当作应用名的一部分,直接导致多单词应用被拆分成“Google这类无效名称。 - 变量引用添加双引号
"$app":确保带空格的应用名作为完整参数传递给open命令,避免被空格拆分成多个独立的无效参数。
内容的提问来源于stack exchange,提问作者user13933695
相关产品推荐
相关产品推荐

