是否有類似於$ 1的東西,但收集來自終端輸入的所有輸入,包括空白字符?這將用於收集可能有空格的粘貼目錄路徑 - 我需要整個字符串。
提前致謝
謝天謝地,我收到了我的第一個問題的答案。然而,在執行過程中,我無法讓它工作。這是我的代碼。任何人都可以解釋我做錯了什麼?謝謝。
alias finder='cd $* && open .'
它返回分段返回 - 每次它到達一個空間時,它將它視爲一個單獨的條目。
是否有類似於$ 1的東西,但收集來自終端輸入的所有輸入,包括空白字符?這將用於收集可能有空格的粘貼目錄路徑 - 我需要整個字符串。
提前致謝
謝天謝地,我收到了我的第一個問題的答案。然而,在執行過程中,我無法讓它工作。這是我的代碼。任何人都可以解釋我做錯了什麼?謝謝。
alias finder='cd $* && open .'
它返回分段返回 - 每次它到達一個空間時,它將它視爲一個單獨的條目。
$*
所有的位置參數,看作單個字
[email protected]
同$*
的,但每一個參數是一個引用字符串,即, 參數被傳遞完好,沒有解釋或膨脹。
通常您只需將第一個參數稱爲"$1"
,包括引號。如果你想使用目錄名作爲參數,並且名稱中有空格,您最好引用它的命令行:
alias finder='cd "$1" && open .'
...
finder "/some/dir/with spaces/in its name"
這也與標籤完成效果很好,它逃脫了空白您。在這種情況下,您可能不妨直接使用open
命令。
但是,如果您希望finder
別名將多個參數連接成一個由空格分隔的單個字符串,那實際上會變得更加困難。我嘗試了一些使用$*
和[email protected]
的可能性,但它們無法正常工作。爲了測試,我使用我自己的命令echol
,它將每個參數打印在一行中。
$ echol foo bar
foo
bar
$ alias e='echol "$*"'
$ e foo bar
foo
bar
$ alias e='eval echo \""$*"\"'
$ e foo bar
foo bar
最後一個是我最近來的,但它增加了一個額外的領先空間。
我認爲你最好引用目錄名稱。
那就是我要做的。感謝您的回覆。 – i4n
當然'$ *'和'$ @'都必須加引號。 – cnicutar