korn脚本中的ssh给出'stty:tcgetattr:指定的文件不支持ioctl系统调用。

时间:2014-02-21 19:25:52

标签: ssh ksh sudo aix

通过连接到AIX盒的putty窗口执行时,我有一个成功运行的命令。

ssh -T user@host 'sudo /path/to/command argument1'

但是,当我在基于询问用户和主机的脚本中构建该命令时,它会给我这个错误。

ksh: sudo /path/to/command argument1:  not found.

我的脚本设置为在运行时输出命令。

#!/bin/ksh -x

这是脚本中最终给出上面输出的文本 -

ssh -T $(whoami)@$server "'"$userid $script$action"'"

这是该脚本文本的输出(与在脚本外调用它相同) -

ssh -T user@host 'sudo /path/to/command argument1'

执行方式有什么不同吗?

更新

我将脚本更改为只连接而不执行,我收到以下错误,但它仍然连接。 -

ssh -T user@host
user@host's password:
stty: tcgetattr: A specified file does not support the ioctl system call.
#

2 个答案:

答案 0 :(得分:1)

将命令包装在双引号的远程服务器上运行:

ssh -T $(whoami)@$server "$userid $script$action"

来自AIX site

的更多信息

答案 1 :(得分:0)

我能够弄清楚这一点,虽然我很想解释。从脚本中删除单引号使其工作。

从脚本和外部脚本开始工作:

ssh -T $(whoami)@$server $userid $script$action

不适用于脚本,但可以在脚本之外工作:

ssh -T $(whoami)@$server "'"$userid $script$action"'"