如何防止变量膨胀?

如何防止变量膨胀?

我有一个简单的 bash 脚本来打印提供给它的第一个参数

#!/bin/bash
echo $1

当我运行这个脚本时,./filename.sh $PATH它会打印出变量 PATH 中的所有内容。我只是想让它显示“$PATH”字符串。

我已经尝试过echo "$1",但它的行为方式也相同。

有解决方法吗?

答案1

没有。没有解决方法,因为变量在启动脚本之前由 shell 展开,因此您的脚本永远看不到该变量,只能看到变量的内容。

但是,有一个简单的解决方案:变量不会在单引号内扩展,因此如果您想将变量作为字符串而不是其值传递,只需引用它即可:

$ ./filename.sh '$PATH'
$PATH

但是,请确保还在脚本中引用该变量:

#!/bin/bash
echo "$1"

在这种特殊情况下这不会有任何区别,但它是好的做法和一个良好的习惯要养成

相关内容