if比較で複数の行変数を比較してみてください。

if比較で複数の行変数を比較してみてください。

現在実行中のファイルは次のとおりです。

#!/bin/ksh -x

export BIN_DIR="../../env"
. $BIN_DIR/vdenv.ksh

success="DROP
CREATE TABLE
GRANT"

$worker_dir/runsql.ksh ddl X X > chnl_avt_v1.log
result=$(sed -e '/DROP/,/GRANT/!d' chnl_avt_v1.log)

if [ "$result" -eq "success" ]; then
       echo "hi"
else 
       echo "NOO"
fi

以下は、$successと$resultが同じであることを知っているにもかかわらず、発生するエラーです。結果 = DROP CREATE TABLE GRANT + [ DROP CREATE TABLE GRANT -eq 成功 ] master_list_ddl.ksh[13]: DROP ^JCREATE TABLE^JGRANT: 構文エラー + echo NOO NOO

答え1

success変数および比較演算子へのアクセス中にエラーが発生しました。

if [ "$result" -eq "success" ]; then

確かにそうだろう。

if [ "$result" = "$success" ]; then

関連情報