Linux

在命令行上使用 $ 參數並在最後為它們提供值

  • July 6, 2020

與其為我需要執行的每個程序編寫腳本,我更喜歡將命令保存在一個文本文件中,然後將它們複製並粘貼到命令行中。當然,每次我粘貼並執行命令時,某些命令的細節都會發生變化。然後我需要通過命令箭頭並更改重要部分。所以,我想做這樣的事情。

舉個簡單的例子:

chmod $1 /home/$2/.bashrc 740 bobsa

可以通過某種方式完成嗎?有xargs什麼可以用來做這個的嗎?我知道我可以ENV在執行命令之前設置變數來實現這一點,但我希望從別的東西上我可以在最後謝謝!

您可以使用bash帶有標誌的命令,-c如下所示:

bash -c 'chmod "$1" /home/"$2"/.bashrc' bash 740 bobsa

請記住對 bash 命令使用單引號。

如果您有經常使用的命令,請將它們編寫為函式,並將它們儲存在 shell 的啟動文件中,例如.bashrc. 可以這樣定義(儘管您需要一個更好的名稱):

f() {
   chmod "$1" "/home/$2/.bashrc"
}

並稱為

f 740 bobsa

如果您需要經常在命令行上編輯命令,那將無法正常工作。但即便如此,您也可以將函式定義放在同一命令行上並立即執行它:

f() { chmod "$1" "/home/$2/.bashrc"; }; f 740 bobsa

{}您需要空格和分號,但您也可以使用()。他們啟動了一個子shell,但您可能不介意:

f() (chmod "$1" "/home/$2/.bashrc"); f 740 bobsa

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