在我的.bashrc
我确定,我可以在命令行后使用的功能:
function mycommand() {
ssh user@123.456.789.0 cd testdir;./test.sh "$1"
}
使用此命令时,仅cd
在远程主机上执行该命令。该test.sh
命令在本地主机上执行。这是因为分号将两个不同的命令分开:ssh
命令和test.sh
命令。
我尝试如下定义函数(注意单引号):
function mycommand() {
ssh user@123.456.789.0 'cd testdir;./test.sh "$1"'
}
我试图将cd
命令和test.sh
命令放在一起,但是参数$1
解析不取决于我给函数的内容。总是试图执行命令
./test.sh $1
在远程主机上。
如何正确定义mycommand
,所以剧本test.sh
正在改变进入目录后,在远程主机上执行testdir
,具有传递给参数的能力mycommand
来test.sh
?
改为这样:
function mycommand {
ssh user@123.456.789.0 "cd testdir;./test.sh \"$1\""
}
您仍然必须将整个命令作为单个字符串传递,但是在该单个字符串中,您需要先进行$1
扩展,然后再将其发送到ssh,因此您需要使用""
它。
实际上,执行此操作的另一种正确方法是使用printf %q
正确引用该参数的方法。即使参数中包含空格,单引号,双引号或任何其他可能对shell具特殊含义的字符,这也将使参数的解析变得安全:
function mycommand {
printf -v __ %q "$1"
ssh user@123.456.789.0 "cd testdir;./test.sh $__"
}
function
,()
没有必要。问题内容: 我试图通过这样的本地服务器上的ssh命令在远程linux服务器上执行命令: ssh myremoteserver’类型ttisql’ 其中ttisql是我的远程计算机路径上的可执行文件。 运行此命令的结果是: bash:第0行:类型:ttisql:未找到 当我只是先连接并执行以下操作: ssh myremoteserver 然后输入命令: [myuser @ myremoteserve
我正在尝试从groovy中使用shell命令< code > notify-send-t 2000 " Title " " Message " ,以下一种方式< code > " notify-send-t 2000 \ " Title \ " \ " Message \ "。execute()就可以完美地工作了。但是当我试图用表达代替信息时,似乎什么都不管用。下面是代码片段: 能帮我理解一下吗?
问题内容: 我正在尝试通过Java执行命令行参数。例如: 上面的命令打开命令行,但是不执行或。有任何想法吗?我正在运行Windows XP,JRE6。 (我已经对问题进行了更详细的修订。以下答案很有用,但不能回答我的问题。) 问题答案: 你发布的代码使用自己的命令启动三个不同的过程。要打开命令提示符然后运行命令,请尝试以下操作(请勿自己尝试):
我在远程服务器上设置了一个自动日志检查的设置。我创建了类似这样的方法,使用exec命令跟踪日志… 如何运行mysql命令将结果返回到eclipse终端?
本文向大家介绍python通过getopt模块如何获取执行的命令参数详解,包括了python通过getopt模块如何获取执行的命令参数详解的使用技巧和注意事项,需要的朋友参考一下 前言 python脚本和shell脚本一样可以获取命令行的参数,根据不同的参数,执行不同的逻辑处理。 通常我们可以通过getopt模块获得不同的执行命令和参数。下面话不多说了,来一起看看详细的介绍吧。 方法如下: 下面我
问题内容: 如何在远程Linux机器上执行命令/脚本?说我想从框a的框b开始服务tomcat。 问题答案: 我想这是最好的安全方式,例如: 必须根据您的特定需求(例如,仅绑定到ipv4)部署OPTIONS的地方,并且您的远程命令可能正在启动您的tomcat守护程序。 注意 : 如果不想在每次运行ssh时都提示您,也请查看ssh- agent,以及系统允许的情况。关键是…了解ssh密钥交换过程。请仔