linux - bash -c 变量没有被分配
问题描述
我正在尝试执行以下命令:
$ bash -c "var='test' && echo $var"
并且只打印一个空行。
如果我不执行相同的命令bash -c
$ var='test' && echo $var
test
$var
正在打印分配给的值。有人可以解释为什么我不能在第一个示例中分配变量吗?
解决方案
双引号扩展变量,因此您的命令扩展为
bash -c "var='test' && echo"
$var
运行时if为空。您可以使用以下方法验证行为
var=hey
bash -c "var='test' && echo $var"
切换引号:
bash -c 'var="test" && echo $var'
推荐阅读
- c# - 如何在 C# 中有效地返回 SortedList<> 中的第一项和最后一项?
- java - 无法使用 java 在我的 facebook 墙上发帖
- javascript - 按部分路径过滤对象
- postgresql - Dblink 不接受 postgressql 的日期格式
- swift - 如果执行嵌套的异步调用,则函数运行两次,否则运行一次。需要帮助来预先确定何时会发生这种情况
- html - React 中的中心对齐组件(垂直和水平)
- javascript - “导出默认 myFn”与“导出 { myFn 作为默认值}”
- javascript - 设置缩放时画布 x、y 位置 (JS) 的问题
- c++ - C++ 函数头匹配:当 const 和模板都涉及时,匹配如何工作?
- android - Android Q 不更新系统映像(无法解决依赖关系)