Question
表題が何を言っているんだお前は状態ですが、↓みたいなことがしたい。
username=myname
echo "Hello, '${username}'" // Hello, 'myname'
shellscriptで書いてるとDB接続時等に変数をクエリに渡したい&stringカラムなのでクォートで囲む必要がある…という時がたまに発生します。
クエリ自体はダブルクォートで囲み、その中で変数部分をシングルクォートで囲って展開させたい。
すぐ忘れるのでメモ
Answer
一度ダブルクォートを終了させ("
)、ダブルクォーテーションで囲ったシングルクォートを挿入し("'"
)、再びダブルクォートで開始("
)
username=myname
echo "Hello, ""'""${username}""'""" // Hello, 'myname'
DBアクセスに使う時はこんな感じ
echo $log_start_at // 2019-04-01 00:00:00
echo $log_end_at // 2019-04-01 23:59:59
mysql -h hogehoge.co.jp -u username -p -e "SELECT * FROM history WHERE log_start_at = ""'""${log_start_at}""'"" && ""'""${log_start_at}""'"" = log_end_at;"
// mysql -h hogehoge.co.jp -u username -p -e "SELECT * FROM history WHERE log_start_at = '2019-04-01 00:00:00' && log_end_at = '2019-04-01 23:59:59';"