与$的输出不同?在bash -c下运行
在bash脚本中,$是一种特殊字符,用于引用变量的值。而在bash -c命令中,$的输出则与普通的bash脚本有所不同。
当在bash -c命令中运行脚本时,$将被解释为当前脚本的参数。如果命令行中提供了参数,那么$1表示第一个参数,$2表示第二个参数,以此类推。如果没有提供参数,则$1为空。
例如,假设我们有一个名为script.sh的脚本文件,内容如下:
#!/bin/bash
echo "参数1:$1"
echo "参数2:$2"
现在,我们在bash -c命令中运行该脚本,如下所示:
bash -c "./script.sh hello world"
在这种情况下,输出将是:
参数1:hello
参数2:world
可以看到,在bash -c命令中,$1和$2分别引用了传递给命令的参数值。
需要注意的是,在bash -c命令中使用$时,可能需要进行转义,以避免与外部环境中的变量冲突。例如,如果想要在bash -c命令中输出$符号本身,可以使用转义字符\进行转义,如下所示:
bash -c "echo \"这是一个\$符号\""
输出将是:
这是一个$符号
总结: 与$的输出不同?在bash -c下运行时,$将被解释为bash -c命令的参数,而不是普通的变量引用。可以使用$1、$2等来引用传递给命令的参数值。
DBTalk
云+社区技术沙龙[第28期]
Elastic 中国开发者大会
serverless days
云+社区技术沙龙[第4期]
领取专属 10元无门槛券
手把手带您无忧上云