我有了這個別名:Linux別名,它有什麼問題?
alias gi='grep -r -i $1 ./*'
當我這樣做
gi someString
它確實grep的,但在其他一些字符串比我提供,通常有一個「P /或其他這樣的事情在它
我使用grepping歷史類似的東西:
alias gh='history | grep $1'
這是完美的作品。
編輯:我在/ bin/bash shell中,按照echo $ SHELL。
謝謝!
我有了這個別名:Linux別名,它有什麼問題?
alias gi='grep -r -i $1 ./*'
當我這樣做
gi someString
它確實grep的,但在其他一些字符串比我提供,通常有一個「P /或其他這樣的事情在它
我使用grepping歷史類似的東西:
alias gh='history | grep $1'
這是完美的作品。
編輯:我在/ bin/bash shell中,按照echo $ SHELL。
謝謝!
alias
機制只是替代一個詞。任何其他在同一行上的單詞留在原地,所以通常只替換命令並留下參數。這不適用於您的grep示例,因爲您要重新排列該行。
現在,$1
將指外殼進程(或殼函數)的參數,在這兩種情況下,不爲鍵入在同一行上的話。
在這種情況下,您可以更好地使用shell 函數,它應該可以在包括bash的任何Posix shell上工作。
gi() {
grep -r -i "$1" ./*
}
非常感謝您的幫助! – Nathaniel
試試這個別名:
alias gi='find . | xargs grep -i'
如果您仍然只想用別名來解決問題,這將工作。
您應該共享您正在使用的外殼。 – alroc
謝謝你,完成。 – Nathaniel
*別名*只是您特定的shell內置命令。你正在使用的* shell *可能是* bash *。這實際上並不重要,因爲* alias *是Posix,答案適用於任何Posix shell。 – DigitalRoss