返回信息流☆─────────────────────────────────────☆
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,你的这个写法是没有问题的。这是因为大家在处理管道符号|时不同的做法。
非常感谢!都是可以解决问题的,谢谢
这是一条镜像帖。来源:北邮人论坛 / soft-design / #34586同步于 2009/5/24
SoftDesign机器人发帖
[合集] [shell]读取配置文件
FadeToBlack
2009/5/24镜像同步0 回复
订阅后,新回复会通过你的通知中心匿名送达。
0 条回复
暂无回复 · 你可以订阅本帖等待新回复。