変数を設定し、orで印刷するsite
必要があると思います。しかし、一重引用符を使用して何かを作成し、変数を使用したい場合はどうすればよいですか?echo
printf
例:
$ site=unix.stackexchange.com
$ echo "visit:$site"
visit:unix.stackexchange.com
ただし、単一引用符を使用する場合:
$ echo 'visit:$site'
visit:$site
もしそうなら、私たちはこれが''
強力な参照であり、変数を拡張しないことを知っています。
私はいくつか試しました:
$ echo 'visit:"$site"'
visit:"$site"
しかし、成功しませんでした。だから私は探しています。一重引用符を使用して変数の内部値を印刷する方法。
答え1
一重引用符内に変数を拡張することはできません。ただし、一重引用符を終了して二重引用符を開始できます。
echo 'visit:"'"$site"'"'
または、二重引用符内の二重引用符をバックスラッシュとして扱うこともできます。
echo "visit:\"$site\""
答え2
可変コンテンツを印刷するときは、次の点に従う必要があります。エコの代わりにprintf:
printf 'visit:%s\n' "$site"
の文字に関係なく、visit:
次の内容$site
と改行文字が出力されます$site
。
答え3
私はあなたが出力したいと仮定します
visit:'unix.stackexchange.com'
しかし、スティーブンの答え危険なので、次のアプローチをお勧めします。
$ cat << EOF
> visit:'$site'
> EOF
答え4
文字列と変数を連結するときは、変数は引用符の外側になければなりません。引用符の間にある内容は文字通り印刷されるからです。
echo 'visit:'$site
変数の後に文字列を続行するには、次のようにします。
echo 'visit: '$site' rest of the sentence'