BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / soft-design / #34586同步于 2009/5/24
SoftDesign机器人发帖

[合集] [shell]读取配置文件

FadeToBlack
2009/5/24镜像同步0 回复
☆─────────────────────────────────────☆ flyingmiao (amiao) 于 (Sat Feb 14 14:10:48 2009) 提到: shell脚本里 echo 'aaa' | read some 为什么some变量为空? 然后一般大家都怎么用shell读取配置文件中的配置? ☆─────────────────────────────────────☆ coolfantasy (Cool) 于 (Sat Feb 14 15:15:02 2009) 提到: source ☆─────────────────────────────────────☆ wks (cloverprince) 于 (Sat Feb 14 18:18:50 2009) 提到: source 或者一个点就可以 比如有abc.sh 那么 $ source abc.sh $ . abc.sh 都可以。 ☆─────────────────────────────────────☆ sweetyhard (财->叔) 于 (Tue Feb 17 17:29:56 2009) 提到: 答案 和 问题 牛头不对马嘴 ☆─────────────────────────────────────☆ ericyosho (ericyosho) 于 (Tue Feb 17 17:49:41 2009) 提到: read是啥? 没听说过。 ☆─────────────────────────────────────☆ warmbupt (warmbupt) 于 (Tue Feb 17 19:23:11 2009) 提到: while read line ... done <$FILE 一般是这样逐行读进去的。 你的那个问题是: echo 'haha\n' | (read directory_fix; echo $directory_fix) 你可以试一试。 read读进去后要紧接着读,否则subshell结束后就没有这个变量了。 【 在 flyingmiao 的大作中提到: 】 : shell脚本里 : echo 'aaa' | read some : 为什么some变量为空? : ................... ☆─────────────────────────────────────☆ warmbupt (warmbupt) 于 (Tue Feb 17 22:44:00 2009) 提到: 或者这样写 read some < <( echo 'aaa' ) ; echo $some 注意在两个<中间有空格,这使用了BASH的一个特性:进程替代。 read命令是在当前的进程中的,而echo 'aaa'在子进程中,而<(echo 'aaa')将子进程中的标准输出通过/proc/fd/ (或者 /dev/fd/*)传递出去,用第一个<传递给父进程的标准输入,由read读入。 试一试:echo <( echo )~ 【 在 flyingmiao 的大作中提到: 】 : shell脚本里 : echo 'aaa' | read some : 为什么some变量为空? : ................... ☆─────────────────────────────────────☆ warmbupt (warmbupt) 于 (Tue Feb 17 22:45:20 2009) 提到: 在新版本的ksh 和 zsh,你的这个写法是没有问题的。这是因为大家在处理管道符号|时不同的做法。 【 在 flyingmiao 的大作中提到: 】 : shell脚本里 : echo 'aaa' | read some : 为什么some变量为空? : ................... ☆─────────────────────────────────────☆ flyingmiao (amiao) 于 (Sun Feb 22 16:03:37 2009) 提到: 【 在 warmbupt 的大作中提到: 】 : 在新版本的ksh 和 zsh,你的这个写法是没有问题的。这是因为大家在处理管道符号|时不同的做法。 非常感谢!都是可以解决问题的,谢谢
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。