【发布时间】:2011-08-17 23:43:38
【问题描述】:
大家好,我一直在使用 new SHH library 向 unix 服务器发送命令,它对我来说非常有用。它可以很好地发送正常命令并接收正确的响应。但是,当我尝试使用它来运行自定义脚本(不是 shell 脚本,而是包含另一个命令并具有参数的文件)时,我似乎遇到了问题
我已经尝试了几种方法来让它发挥作用。
在 unix 服务器本身上,以下命令可以完美运行并按预期执行:
- cd 脚本; script.oi someArg someArg - 工作
- csh -c "cd script; script.oi someArg someArg" - 也可以使用
- cd /users/bin/script; script.oi someArg1 someArg 2 - 工作
- csh -c "cd /users/bin/script; script.oi someArg1 someArg 2" - 工作
- /users/bin/script/script.oi someArg1 someArg2 - 工作
但是,在代码中我尝试了以下操作:
string command = string.Format("csh -c \"cd script; script.oi {0} {1}\"", arg1, arg2); - DOES NOT WORK
string command = string.Format("cd script; script.oi {0} {1}", arg1, arg2); - DOES NOT WORK
string command = string.Format("cd /users/bin/script; script.oi {0} {1}", arg1, arg2); - DOES NOT WORK
string command = string.Format("csh -c \"cd /users/bin/script; script.oi {0} {1}\"", arg1, arg2); - DOES NOT WORK
string command = string.Format("/users/bin/script/script.oi {0} {1}", arg1, arg2); - DOES NOT WORK
所以对我来说,似乎发生了其他事情。我确实尝试了以下方法:
string command = string.Format("csh -c \"ls\"", arg1, arg2);` - WORKS
string command = string.Format("ls", arg1, arg2);` - WORKS
这似乎与我尝试运行自定义脚本的事实有关,或者可能是我忘记了一些愚蠢的设置。如果您需要更多详细信息,请告诉我。
编辑: 不工作,我的意思是返回到 C# 的结果应该说一些东西,但结果是空白的。此外,该脚本发送一条 TIBCO Rendevous 消息,该消息最终将一个条目添加到未显示的数据库中。当我说 WORKS 时,我的意思是该条目显示在数据库中。
【问题讨论】:
-
不工作是什么意思?您收到错误消息吗?你得到一个无效的结果吗?我只是想知道您是否可以在自定义脚本的情况下使用带空格或无效字符的参数?还有:script.oi 有什么模式? 777? 755?
-
结果(命令的输出)是空白的,并且脚本应该通过发送 TIBCO Rendevous 消息将条目添加到 DB,并且永远不会添加该条目。不确定脚本模式是什么意思....只是带有参数的 TIBCO Rendevous 消息
-
只是
script.oi的文件系统的权限。ls -al /users/bin/script/script.oi输出什么? -
我是一个巨大的 unix 菜鸟,但是当我运行该命令时,我认为您正在寻找的是它的开头
-rwx--x--x -
另外,
arg1和arg2的值是多少?您使用哪个用户登录?