linux运行的进程替换,linux – 如何在用sh而不是bash运行的脚本中使用进程替换?...

目前尚不完全清楚,但是你在脚本顶部有一个不正确的shebang线的可能性非常高:

#!/bin/sh

或者您在测试时使用sh script.sh而不是bash script.sh,或者您在环境中设置了SHELL = / bin / sh或类似的东西.您的失败是在process substitution代码上.当Bash以sh运行时(在POSIX mode中),则进程替换不可用:

Process substitution is not available.@H_502_19@

你需要写:

#!/bin/bash

temp=$(comm -12

echo $temp

甚至简单地说:

#!/bin/bash

comm -12

这将获得与回声后跟随捕获相同的效果.测试时,使用bash -x script.sh或bash script.sh.

解读难以理解的评论

在难以理解(现已删除)的comment中,信息似乎包括:

BASH=/bin/sh

BASHOPTS=cmdhist:extquote:force_fignore:hostcomplete:interactive_comments:progco‌mp:promptvars:sourcepath

BASH_ALIASES=()

BASH_ARGC=()

BASH_ARGV=()

BASH_CMDS=()

BASH_LINENO=([0]=”0″)

BASH_SOURCE=([0]=”a.sh”)

BASH_VERSINFO=([0]=”4″ [1]=”1″ [2]=”2″ [3]=”1″ [4]=”release” [5]=”x86_64-redhat-linux-gnu”)

BASH_VERSION=’4.1.2(1)-release’

CVS_RSH=ssh

SHELL=/bin/bash

SHELLOPTS=braceexpand:hashall:interactive-comments:posix

SHLVL=2

请注意,BASH = / bin / sh和SHELLOPTS = braceexpand:hashall:interactive-comments:posix.这些中的任何一个或两个都可能是问题的主要部分.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值