我们使用unix modules并在系统中将sh
软链接到bash
。
$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 Jan 27 2016 /bin/sh -> bash
我认为应该使用#!/bin/sh
& #!/bin/bash
,但情况有所不同。
例如,我们有bash_completion
脚本
$ cat bash_completion
_module_not_yet_loaded() {
comm -23 <(_module_avail|sort) <(tr : '\n' <<<${LOADEDMODULES}|sort)
}
我尝试初始化
$ bash
$ source bash_completion
$ sh # switch to sh
$ source bash_completion
sh: bash_completion: line 3: syntax error near unexpected token `('
sh: bash_completion: line 3: ` comm -23 <(_module_avail|sort) <(tr : '\n' <<<${LOADEDMODULES}|sort)'
那么问题是什么?为什么sh
与bash
的软链接无法正常工作?