ssh远程执行linux 命令是单引号还是双引号
3个回答
展开全部
单引号和双引号在ssh命令中的区别:
以一个例子来说明问题,
假设本地机器上配置了JAVA环境变量,在本地执行 echo $JAVA_HOME=/opt/jdk
假若我想查看远程机器上的JAVA环境变量,则只能使用单引号了,ssh user@node ' echo $JAVA ', 则是' ' 中的$JAVA不会被shell解析,而是当做一个字符串,此时参数 echo $JAVA 传递给了 ssh;
如果我们使用 ssh user@node ” echo $JAVA ",则 shell 首先会解析$JAVA,得到它的值,则该命令就变成了 ssh user@node ' echo /opt/jdk ' 了
以一个例子来说明问题,
假设本地机器上配置了JAVA环境变量,在本地执行 echo $JAVA_HOME=/opt/jdk
假若我想查看远程机器上的JAVA环境变量,则只能使用单引号了,ssh user@node ' echo $JAVA ', 则是' ' 中的$JAVA不会被shell解析,而是当做一个字符串,此时参数 echo $JAVA 传递给了 ssh;
如果我们使用 ssh user@node ” echo $JAVA ",则 shell 首先会解析$JAVA,得到它的值,则该命令就变成了 ssh user@node ' echo /opt/jdk ' 了
展开全部
单引号与双引号都可以,只是在本地的操作系统中,双引号内的环境变量(例如$HOME,$CC)等会被替换成系统变量的值,而单引号则不会。
例如
$ export LS=ls
$ ssh username@ip "$LS"
Desktop
Documents
Downloads
输出结果是在远端当前目录执行ls命令的输出结果
然而当我们使用单引号时候则不会得到任何输出,因为远端系统中根本没有$LS这个命令。
例如
$ export LS=ls
$ ssh username@ip "$LS"
Desktop
Documents
Downloads
输出结果是在远端当前目录执行ls命令的输出结果
然而当我们使用单引号时候则不会得到任何输出,因为远端系统中根本没有$LS这个命令。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
运行需要命令前加命令路径
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询