首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接solaris服务器时出现pssh错误

问连接solaris服务器时出现pssh错误
EN

Stack Overflow用户
提问于 2015-10-28 19:17:11
回答 1查看 183关注 0票数 0

我正在使用pssh在远程服务器上运行脚本。对于linux,我没有遇到问题,但是对于solaris,我在运行脚本时遇到了问题。

我正在使用shebang来使用bash shell,它使用的是sh shell,这导致了这个问题。

代码语言:javascript
复制
# cat test.sh 
#!/usr/bin/env bash

UNAME=$(uname)
if [ $UNAME = SunOS ]; then 
    echo SunOS
fi


# ssh host1 'bash -s' <test.sh 
SunOS

# pssh -H host1 -i -I <test.sh 
[1] 04:15:47 [FAILURE] host1 Exited with error code 2
Stderr: Pseudo-terminal will not be allocated because stdin is not a terminal.
-sh: syntax error: `UNAME=$' unexpected
# 
EN

回答 1

Stack Overflow用户

发布于 2015-10-28 20:04:25

Linux和Solaris都会忽略只有在运行可执行文件时才处理的shebang,而不是在读取stdin时处理的shebang。碰巧Linux sh实际上是bash,所以支持您使用的语法。

更简单的解决方法是修复脚本,使其可移植到任何shell:

代码语言:javascript
复制
UNAME=`uname`
if [ "$UNAME" = SunOS ]; then 
    echo SunOS
fi

或者,您可以将远程用户的默认外壳更改为更标准的外壳,如ksh或bash。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33389606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档