if [[ ${account_nr} =~ ^[0-9]+$ && ${from_account_nr} =~ ^[0-9]+$ ]]
これは、口座番号が数値かどうかを確認するためのものです。構文エラーが発生します。
この質問の以前のバージョンでは、if
と[[
;の間にスペースがありませんでした。実際のコードには必要なスペースがあります。
以下のエラー メッセージが表示されます。
syntax error: `${account_nr}' missing expression operator
私はbashシェルを使用しています。あなたはそれが機能していると言っています。しかし、私は以下のような例で試していますが、エラーが発生しています。
jai = "CNM"
hanuman = "BRK"
if [[ $jai =~ ^[0-9]+$ && $hanuman =~ ^[0-9]+$ ]]
then
echo "Jai hanuman"
echo "valid input"
fi
以下のようなエラーが表示されます。
./temp.sh: line 11: jai: command not found
./temp.sh: line 12: hanuman: command not found
私の実際のプログラムでは機能していません:「今、私は問題を詳細に説明しています:」
- 1 つのファイルに、すべてのトランザクションの詳細を 1 つのトランザクションの各行に保存しました。
- 以下の while ループを使用して 1 つのトランザクションの詳細を読み取るたびに while read blank srvrtid 空白 member_nr 空白 account_nr 空白 acct_type 空白 routing_nr 空白 amount 空白 proc_date 空白 from_account_nr 空白 from_acct_type 空白 do
この中で、account_nr と from_account_nr の値が数値であるか、以下に指定した if 条件でないかを確認したい
if [[ ${SQL_STATEMENT} -gt 0 && ${account_nr} =~ ^[0-9]+$ && ${from_account_nr} =~ ^[0-9]+$ ]]
のエラーは表示されません
&{SQL_STATEMENT}
。これにSQL_STATEMENT
は、SELECT クエリによって返される値が割り当てられます (トランザクションの総数)。スクリプトを実行すると、以下のエラーが表示されます。
構文エラー: `${account_nr}' 式演算子がありません。
私の問題を助けてください。