LoginSignup
0
2

More than 3 years have passed since last update.

ダブルクォートの中でシングルクォートで囲った変数を展開させたい

Last updated at Posted at 2019-10-08

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';"

Thanks

ShellScriptのダブルクォートとシングルクォートの違い

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2