我试图登录到一个文件(在远程服务器中,比如说/home/test/log.txt)存储在 $var 中的内容。我正在尝试
ssh test@$192.168.1.35 "echo "var" >> /home/test/log.txt"
你也试过
ssh test@$192.168.1.35 "echo "$var" >> log.txt"
但两者都没有工作
有什么帮助吗?
您正在使用双引号,因此变量扩展将在本地发生。您应该使用单引号,以便命令原封不动地发送。
与echo '$var'
give $var
whileecho "$var"
显示内容的方式相同,服务器看到$var
的不是本地的内容$var
。
所以:
ssh test@$192.168.1.35 'echo $var >> /home/test/log.txt'
将在远程计算机上创建一个文件,其中包含远程的值$var
。
如果你这样做
ssh test@$192.168.1.35 'echo $var' >> /home/test/log.txt
您会在本地计算机上获得一个文件,其中包含远程的值$var
。
如果你这样做
ssh test@$192.168.1.35 "echo $var >> /home/test/log.txt"
它将您本地的值存储$var
在远程系统上的文件中。
(另外,如果它只涉及远程系统,您可能应该使用 shell 脚本,或者如果您希望它自动发生,也可以使用 cron。)
尝试:
ssh test@192.168.1.35 "echo '$var' >> /home/test/log.txt"
你试过了吗:
ssh test@$192.168.1.35 'echo "$var" >> /home/test/log.txt'
这应该有效。假设var
是在您的计算机上而不是遥控器上设置的。
这是将 linux 机器上的一些文本放入另一台 linux 机器上已经存在的文件中的正确方法:
echo 'text' | ssh test@$192.168.1.35 'cat >> /remote_file_path'