10 個の異なる単語に対して複数のファイルを収集するスクリプトの作成中に、この問題が発生しました。
私が作成したスクリプトは(縮小)
#!bin/bash
alias grep='grep -n'
out=`grep word $1`
出力
some text word
some other text word more text
grepは機能しますが、エイリアスは考慮しません。行番号の代わりに一致する行のみを出力します(-n
行番号の場合)。
これで、次のコマンドを実行すると正常に動作します。
#!bin/bash
out=`grep -n word $1`
上記のスクリプトの出力と期待される出力:
233: some text word
532: some other text word more text
スクリプトのさまざまな場所にgrepステートメントがあり、すべての行を編集する必要はありません。エイリアスでgrepを一度オーバーライドしたいのですが、うまくいかないようです。
ここで何が間違っている可能性がありますか?エイリアスを機能させるにはどうすればよいですか?
ベストアンサー1
次の行を忘れました。
shopt -s expand_aliases
例えば
#!/bin/bash
shopt -s expand_aliases
alias grep='grep -n'
out=$(grep word "$1")
echo "$out"