次のように私はbash.shにコマンドが含まれている場合、私は、 、このコマンドは、しかし、端末端末v.sのコマンド。 bash.sh
で完璧に動作し
cat $txt | grep -v "\/\*" | awk -F$'\t' '{if ($16=="N") print $0}' | awk -F$'\t' '{if ($48=="Y" || $48==".") print $7}'
、それをさまざまな条件にコマンドとパイプを持っていますまったく動作しません。 私はスクリプトはちょうどこのようになりますtest.sh を作成しました。そして、
#!/bin/bash
txt=file.txt
cat $txt | grep -v "\/\*" | awk -F$'\t' '{if ($16=="N") print $0}' | awk -F$'\t' '{if ($48=="Y" || $48==".") print $7}' >> output.txt
、私はsimplely
sh test.sh
を使用することがoutput.txtとを生成したが、これは出力には何のいずれかの情報です。 txt
誰でも何が違うのですか? bash test.sh
として実行 - - $'\t'
のbashされ、他のシェルでは動作しないことがあります -
あなたはそれがスクリプトに入れるとどうなりますか?スクリプトはどのように見えますか?どのようなエラーやメッセージ(もしあれば)がありますか?どのようにスクリプトを実行しようとしますか? –
スクリプトの先頭に 'set -x'を設定してデバッグを試しましたか? – Inian
スクリプトをデバッグする最も簡単な方法は、一度に1つのことをすることです。あなたが今行っていないことから始めることです: '$ txt'の内容をエコーする。 'cat $ txt'だけ続けてください。それから 'cat $ txt | grep ... '。そういうことで、それぞれのことが何をするのかを検証します。あなたが期待していないものを見つけたら、そのことを詳しく見ることができます。 –