发布网友 发布时间:2022-04-23 16:14
共3个回答
热心网友 时间:2023-07-20 01:47
单引号和双引号在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 ' 了
热心网友 时间:2023-07-20 01:47
单引号与双引号都可以,只是在本地的操作系统中,双引号内的环境变量(例如$HOME,$CC)等会被替换成系统变量的值,而单引号则不会。
例如
$ export LS=ls
$ ssh username@ip "$LS"
Desktop
Documents
Downloads
输出结果是在远端当前目录执行ls命令的输出结果
然而当我们使用单引号时候则不会得到任何输出,因为远端系统中根本没有$LS这个命令。
热心网友 时间:2023-07-20 01:48
运行需要命令前加命令路径