
結果の代わりに変数自体を印刷する方法はありますか?
x=`curl -s https://google.com`
予想される結果
curl -s https://google.com
誰でも上記の結果を得る方法を提案できますか?
ありがとう
答え1
この変数は次のように設定されません。
`curl -s https://google.com`
コマンド置換は変数の割り当て前に発生し、その変数を出力に割り当てます。ファイルから読んで入手できると思います。
#!/bin/bash
x=$(echo foobar)
awk -F\= '$1 == "x"{gsub(/\$\(|\)/, ""); print $2}' "$0"
$(...)
バックティックの代わりにコマンド置換を使用する必要がある理由はいくつかあり、おそらくまったく使用しないでください。実際の意図を教えてください。明らかにより良い解決策があるでしょう。
コマンドを配列に保存し、参照として使用することもできます。
#!/bin/bash
x=(echo foobar)
y=$("${x[@]}")
printf 'x is: %s\ny is: %s\n' "${x[*]}" "$y"
すると、以下が出力されます。
$ ./script.sh
x is: echo foobar
y is: foobar