如何在终端上编写和运行shell程序而不先保存它

时间:2013-03-21 18:46:05

标签: linux bash shell

我正在使用Linux服务器,我可以访问某个目录,但我不允许向该目录写入任何内容。我可以从系统提示符运行命令。现在我必须找到该目录中某些文件的特定字段的值并进行一些比较。我在测试服务器上有一个脚本可以做到这一点。但我无法将我的脚本安装到服务器上,我问无论如何我输入一个特定的命令,然后我可以编写并运行一个shell程序而不保存程序?谢谢!

2 个答案:

答案 0 :(得分:6)

如果您在其他主机上安装了该脚本,则可以这样运行:

wget http://your.host.net/script -O- | sh -s

如果无法通过HTTP访问主机,则可以使用任何其他协议。

您也可以直接在shell中编写脚本:

sh -s <<EOF
echo Hello
echo I am script
echo Nice to meet you
EOF

答案 1 :(得分:1)

您可以使用backtics执行另一个命令的结果。

`wget /path/to/your/script/stored/remotely -O-`

(您可以使用sftp来获取脚本)

另一种选择是编写一个使用tty来控制ssh会话的程序,然后脚本存储在ssh客户端上,但命令在服务器上运行。也许expect工具可以帮助解决这个问题。