例如:
mkdir ~/{1,2,3}
创建目录~/1
、~/2
和~/3
。它相当于:
mkdir ~/1
mkdir ~/2
mrdir ~/3
但是,在以下情况下使用相同的语法CMD < argument >
:
brew {install, update, doctor}
...对于 shell 的解释来说是无稽之谈。这并不意味着:
brew install
brew update
brew doctor
制作快速脚本很容易,但是必有在 bash 中使用扩展或替换是一种更简单的方法。我缺少什么?
运行Bash 3.2.57(1)-release
于OS X 10.10.2
答案1
xargs
似乎是你想要的:
echo install update doctor | xargs -n1 brew
答案2
转义第一个空格并删除其他空格:
$ printf "'%s'\n" brew\ {install,update,doctor}
'brew install'
'brew update'
'brew doctor'
如果brew
是一个命令,只需编写(也不带空格):
brew {install,update,doctor}
就像你的 mkdir 示例一样:
mkdir {install,update,doctor}
您不需要外部流程或管道即可做到这一点;一切都可以在你的 shell 中完成bash
。
答案3
怎么样(注意反斜杠,非常重要):
echo brew\ {install,update,doctor}\;| bash
第一个模式( 的参数echo
)将这样扩展:
echo brew install; brew update; brew doctor;
然后回显,产生以下输出:
brew install; brew update; brew doctor;
我们将其传送到一个新的 bash 实例。