こんな些細なことに 1.5 時間も費やしたなんて信じられません。ファイルをgrepし、出力を変数に保存し、変数をSTDOUTにエコーする非常に単純なシェルスクリプトを作成しています。
コマンドラインで正規表現を使用してgrepコマンドを確認しましたが、正常に動作します。しかし、何らかの理由で、grep コマンドはシェル スクリプト内では機能しません。
これが私が書いたシェルスクリプトです:
#!/bin/bash
tt=grep 'test' $1
echo $tt
次のコマンドでこれを実行しました: ./myScript.sh testingFile. 空行を出力するだけです。
- すでに chmod を使用して、スクリプトを実行可能にしました。
- PATH 変数が含ま
/binれていることを確認しました。 echo $SHELL与えることを確認した/bin/bash- 必死になって、次のすべての組み合わせを試しました。
tt=grep 'test' "$1"echo ${tt}- コマンドライン引数をまったく使用せず、ファイル名をハードコーディングする
tt=grep 'test' testingFile
- 私はこれを見つけました:grepはbashスクリプト内で失敗しますが、コマンドラインでは機能し
dos2unix、可能なキャリッジリターンを削除するためにも使用されます. - また、次のような grep オプションを使用しようとすると、:
tt=grep -oE 'test' testingFileというエラーが表示されます./out.sh: line 3: -oE: command not found。 - 狂ってる。