Bash

參數的外殼擴展?

  • April 1, 2015

例如:

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}

您不需要外部流程或管道來執行此操作;一切都可以在你的bashshell中完成。

引用自:https://unix.stackexchange.com/questions/193724