如何打印变量本身而不是结果?

如何打印变量本身而不是结果?

有什么方法可以打印变量本身而不是结果吗?

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

相关内容