![スクリプトでエイリアスを使用しない[閉じる]](https://linux33.com/image/67060/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%83%88%E3%81%A7%E3%82%A8%E3%82%A4%E3%83%AA%E3%82%A2%E3%82%B9%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%AA%E3%81%84%5B%E9%96%89%E3%81%98%E3%82%8B%5D.png)
.bash_profileにgrep
行番号と色の一致を表示するエイリアスがあります。私の結果grep
の例は次のとおりです。
$ grep test filename
1:This is a test (to be removed)
1:This is a second test (to be removed)
私のエイリアスは次のとおりです。
alias grep="grep --color"
grep
スクリプトでコマンドを実行するときにこのエイリアスが使用されるのを防ぐ方法はありますか?
スクリプトで次のコマンドを試した場合:
grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
\grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
command grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
/usr/bin/grep test filename | sed -E 's/^(.*) \(.*$/\1/g'
すべての結果は次のとおりです。
1:This is a test
1:This is a second test
次のような結果が得られるといいでしょう。
This is a test
This is a second test
私はとgrep (GNU grep) 2.21
を使用していますGNU bash, version 4.3.33
。
答え1
使用\grep
。
(Bourne / POSIX)シェル仕様は、コマンドワードの文字が引用されると、対話型シェルのエイリアス置換が抑制されることを示しています。