Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash heredoc在通过管道传输到ssh时失败_Bash_Tcsh - Fatal编程技术网

Bash heredoc在通过管道传输到ssh时失败

Bash heredoc在通过管道传输到ssh时失败,bash,tcsh,Bash,Tcsh,我正在尝试使用herdeoc通过ssh执行命令。当我使用“EOF”样式时: result=$(ssh $quiet -T ${G_IPAddressBase}${G_TGP} <<- 'EOF' set pid=`ps -ef | grep TestPatterns | egrep -v 'grep|tail|vi|csh' | gawk '{print $2}'` if ( "$pid" != "" ) then echo &

我正在尝试使用herdeoc通过ssh执行命令。当我使用“EOF”样式时:

result=$(ssh $quiet -T ${G_IPAddressBase}${G_TGP} <<- 'EOF'
set pid=`ps -ef | grep TestPatterns | egrep -v 'grep|tail|vi|csh' | gawk '{print $2}'`
if ( "$pid" != "" ) then
        echo "TestPatterns ($pid) terminated"
        kill $pid
else
        echo "TestPatterns down already"
endif
EOF
)
我所读到的一切都表明这不应该发生。如果我
cat/tmp/command.csh
将herdoc添加到一个文件中,则命令与我在远程框上的预期匹配,并按预期工作

result=$(ssh $quiet -T ${G_IPAddressBase}${G_TGP} <<- EOF
set pid=\`ps -ef | grep $mytaskName | grep '\/bin\/bash' | gawk '{print \$2}'\`
if ( "\$pid" == "" ) then
        echo "ERROR: $mytaskName cored"
else
        if ( -f "$mytaskLogpath" ) then
                set agent1Done=1
        else
                echo "ERROR:  $mytaskName didn't make a report file"
        endif
endif
EOF
)
这个脚本在bash中,但是默认的shell是tcsh,这是远程正在运行的,所以它不是因为csh命令在远程登录的bash窗口中运行


你知道我做错了什么吗?

你考虑过在shell命令行而不是在程序文本的带内传递参数吗?这样你就可以继续使用
了,有没有可能把代码放到一个脚本中,然后复制到服务器上执行呢?
grep'\/bin\/bash'
是如何变成
egrep-v'grep | tail | vi | csh'
?顺便说一句,这是一个非常讨厌的命令行。我会考虑让它<代码> PS-EFGAWK/TestStudio/& &!grep | tail | vi | csh/{print$2}'
--没有理由在两个组件都可以的情况下使用四个单独的组件。顺便说一句,没有必要在
grep
中转义
/
set pid=`ps -ef | grep TestPatterns | egrep -v 'grep|tail|vi|csh' | gawk '{print }'`