gpt4 book ai didi

bash - 如何在 sh -c "..."命令中分配 shell 变量?

转载 作者:行者123 更新时间:2023-11-29 09:16:58 27 4
gpt4 key购买 nike

当你执行

jeremy@home:/$DOG=happy; echo $DOG;

你得到输出

happy

但是,当你执行 jeremy@home:/$sh -c "DOG=happy; echo $DOG;"

甚至

jeremy@home:/$sh -c "DOG=happy; echo "$DOG";"

jeremy@home:/$sh -c "DOG=happy; echo \"$DOG\";"

jeremy@home:/$sh -c "DOG=happy; echo '$DOG';"

你只会得到一个空行。怎么会这样?如何从 sh -c 命令中实际设置变量?

最佳答案

转义美元符号 (\$)。

> sh -c "DOG=happy; echo \$DOG;"
happy

另一种选择是使用单引号而不是双引号 - 变量不会在单引号内计算,因此 $DOG 将传递给 sh 以获取评价。

> sh -c 'DOG=happy; echo $DOG'
happy

但是,如果您既需要在传递给 sh 之前替换变量,又需要传递某些变量,通常最简单的方法就是转义您确实想传递的变量。

关于bash - 如何在 sh -c "..."命令中分配 shell 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4689498/

27 4 0
文章推荐: Bash 脚本问题
文章推荐: bash - 使用 select 会产生语法错误
文章推荐: Bash 引用问题
文章推荐: bash - shebang 中的路径
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com