为什么“源”似乎忽略了匿名fifo?

时间:2019-06-04 03:28:34

标签: bash

例如,我对以下行为感到困惑:

设置

$ echo -e 'X=1\n# Comment\nY=2' > target
$ cat target
X=1
# Comment
Y=2

问题

这不起作用

$ X='-' Y='-'; source <(cat target); echo $X $Y
- -

但这可行

$ X='-' Y='-'; source target; echo $X $Y
1 2

这可行:

$ cat <(cat target)
X=1
# Comment
Y=2

我知道我还有其他选择,以下对我有用:

$ X='-' Y='-'; source /dev/stdin <<< "$(cat target)"; echo $X $Y
1 2

(请注意,如果没有引号,我将得到不良的单行解析)

$ X='-' Y='-'; source /dev/stdin <<< $(cat target); echo $X $Y
1 -

详细信息

这是在以下bash / osx上发生的事情:

$ bash --version
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.

$ uname -v
Darwin Kernel Version 17.7.0: Wed Apr 24 21:17:24 PDT 2019; root:xnu-4570.71.45~1/RELEASE_X86_64

0 个答案:

没有答案