ホーム>source

Unix Systemコマンドを使用してスクリプトを開始しようとしていますが、次のエラーメッセージが表示されます。

sh:location/script.ksh:そのようなファイルまたはディレクトリはありません

エラーメッセージは予想されますが、システムコマンドを失敗で終了させる方法はわかりません。

私が使用しているコードは以下のとおりです、どこで間違っているのか、何が欠けているのかを誰かが知っているでしょうか?

elif [ ${VAR} -gt 0 ]; then
**grep for string** |
awk -v job_text="${VAR2}" \
-v job_seq_no=0 \
'BEGIN { FS = ";" } ; \
{ command_pos=index($1,job_text)+length(job_text) } ;\
                      { job_seq_no++ } ; \
                      { system (substr($1,command_pos,length($1)-command_pos))}'

これは馬鹿げた質問であるか不可能な場合は、スクリプト作成者ではないので申し訳ありません。

前もって感謝します!

キャメロン

あなたの答え
  • 解決した方法 # 1

    スクリプトを終了しようとしていますか? awk内のシステムの戻り値をメモし、それをawkの終了ステータスとしてシェルに報告する必要があります。システムから返された値を変数に保存し、その変数を引数としてexitに渡すだけです。簡単な例として、以下を検討してください。

    $ cat a.sh
    #!/bin/bash
    if echo "$1" | awk '{r=system $0} END {exit r}'; then
            echo awk succeeded
    else
            echo awk failed >&2
            exit 1
    fi
    $ ./a.sh false
    awk failed
    $ ./a.sh true
    awk succeeded
    
    

    awkを終了したいだけなら、

    awk '{r=system (...); if (r!=0){exit r}}'
    
    

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ mysqlクエリを使用して行の合計を取得したい