bash - 使用 -c 调用时 Bash 传播变量
问题描述
我正在使用 ZSH。为什么最后一个命令不输出任何内容?
$ cat create_foo.sh
foo=bar
$ source create_foo.sh && echo $foo
bar
$ unset foo
$ bash -c "source create_foo.sh && echo $foo"
从最后一个命令我没有得到任何输出。
解决方案
因为$foo
被双引号中的空字符串替换。
您需要使用单引号或转义$
符号:
$ bash -c 'source create_foo.sh && echo $foo'
bar
$ bash -c "source create_foo.sh && echo \$foo"
bar
推荐阅读
- sql-server - T-sql While 循环为电子邮件创建 html 代码。如何在此循环中动态更改表名和变量名?
- ios - UIFontPickerViewController 在 Catalyst 中工作吗?
- javascript - 无法处理 Reactjs 无限反应轮播错误
- c - 将 C 中分配的字节缓冲区包装为 Go 切片 ([]byte)
- android - 导航图中身份验证后如何清除片段?
- excel - 有没有办法根据另一个工作表中的另一个特定值替换工作表中的单元格值
- c# - 在 C# 中的 2 个 SQL 表中插入嵌套 JSON
- javascript - Google Apps 脚本 JSON.Parse 在调试时导致“无法连接到服务器”
- reactjs - 反应上下文无法设置上下文
- c# - unity - 如何去上一个场景