Bash
參數的外殼擴展?
例如:
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
xargs
似乎是你想要的:echo install update doctor | xargs -n1 brew
轉義第一個空格並刪除其他空格:
$ printf "'%s'\n" brew\ {install,update,doctor} 'brew install' 'brew update' 'brew doctor'
如果
brew
是一個命令,只需編寫(也沒有空格):brew {install,update,doctor}
就像您的 mkdir 範例一樣:
mkdir {install,update,doctor}
您不需要外部流程或管道來執行此操作;一切都可以在你的
bash
shell中完成。