有什么方法可以打印变量本身而不是结果吗?
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