bash - bash shell 内置“读取”没有按预期工作
问题描述
这些是命令:
$ echo $LINE
$ echo TEXT
TEXT
$ echo TEXT | read LINE
$ echo $LINE
$
我希望 "echo "$LINE" 返回 "TEXT",但它是空的。有什么想法吗?
解决方案
管道创建子shell,而子shell中创建的变量在主环境中不存在。
你可以做:
$ read line < <(echo 'my text')
$ echo "$line"
my text
推荐阅读
- php - 使用 EasyPHP Devserver 将本地主机连接到数据库 MSSQl
- security - 将凭据添加到 chromium-browser CLI 命令
- monaco-editor - 如何根据之前的文本动态过滤 monaco-editor 建议?
- java - Spring Cloud Gateway - 在 GatewayFilterChain 中验证流程
- talend - tMap 中的上下文
- optimization - 如果 Redis 中的数据大小很大,RDB 是否优于 AOF
- php - PHP - 格式化数字以匹配特定模板
- c# - 统一库存系统
- javascript - 如何使用“node -r esm app.js”启动 docker?
- php - 如何在 BuildRules() 函数中查询另一个表 - CakePHP 4.x