力圖打造:如何在bash別名中包含參數?
alias mcd="mkdir $1; cd $1"
獲取:
$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found
我在做什麼錯?
力圖打造:如何在bash別名中包含參數?
alias mcd="mkdir $1; cd $1"
獲取:
$ mcd foo
usage: mkdir [-pv] [-m mode] directory ...
-bash: foo: command not found
我在做什麼錯?
別名只能用一些任意文本替換命令的第一個單詞。它不能使用參數。
您可以改用一個shell函數:
mcd()
{
test -e "$1" || mkdir "$1"
cd "$1"
}
也可能是一個shell腳本?命名爲沒有擴展名的文件mcd?功能如何不同或更好? – talkaboutquality 2009-11-30 18:39:19
它不能用作shell腳本,因爲腳本會在子shell中運行。爲了使CD具有預期的效果,它必須運行在調用者的shell中,而不是子shell。 – 2009-11-30 18:45:03
這個函數應該如何被調用? – Tebe 2014-07-21 11:56:58
這一個被提出和回答第一個吧! – 2015-04-24 14:46:28