1

私はシェルスクリプトにかなり慣れていませんが、私が学んだ時期が来て仕事に必要なため、シェルスクリプトを実行しているだけです。

私は周りを見回しており、これを機能させるために複数の方法を試しましたが、理解できないようです。

SQLite データベースにアクセスし、select ステートメントの結果を変数に格納するスクリプトがあります。

これまでに試したこと

これは、アポストロフィ内の内容をそのまま反映しています。アポストロフィの前のドル記号を削除すると、同じ結果が得られます。

track_name=$'sqlite3 "$database_name" << EOF
select name from track where id = "$required_track";
exit;
EOF'

ここで、「track_name」の近くで構文エラーが発生します

sqlite3 "$database_name" << EOF
track_name='select name from track where id = "$required_track";'
exit;
EOF

変数に保存しようとせずにselectステートメントを正常に実行しましたが、保存できなければあまり役に立ちません...

どんな助けでも大歓迎です

4

1 に答える 1

2

コマンドの出力を BASH 変数に保存するには、次を使用する必要があります。

VAR_NAME=$(command);

たとえば、システムの現在の時刻を変数または list directory コマンドの実行結果に格納する場合は、次のようにします。

DATE_EXAMPLE_VAR=$(date); #Stores 'date' command output into DATE_EXAMPLE_VAR
echo $DATE_EXAMPLE_VAR; #Shows DATE_EXAMPLE_VAR contents

DIRCONTENTS=$(ls); #Stores a list of your current directory contents.

同様に、これは次の場合に機能するはずですsqlite3

track_name=$(sqlite3 "$database_name" "select name from track where id = $required_track")
于 2013-04-15T10:15:35.410 に答える