我试图登录文件(在远程服务器中让/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"
但两者都没有用
任何帮助?
答案 0 :(得分:6)
您使用的是双引号,因此变量扩展将在本地进行。您应该使用单引号,以便命令不会发送。
与echo '$var'
给出$var
而echo "$var"
显示内容的方式相同,这样服务器就会看到$var
而不是本地{{1}的内容}。
所以:
$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"
的值存储在远程系统上的文件中。
(另外,如果它只涉及远程系统,你应该使用shell脚本,或者如果你想让它自动发生,你可能会使用cron。)
答案 1 :(得分:1)
尝试:
ssh test@192.168.1.35 "echo '$var' >> /home/test/log.txt"
答案 2 :(得分:0)
你有没有尝试过:
ssh test@$192.168.1.35 'echo "$var" >> /home/test/log.txt'
这应该有效。假设您的计算机上设置了var
,而不是遥控器。
答案 3 :(得分:0)
以下是将Linux机器中的某些文本放在另一台Linux机器上现有文件中的正确方法:
echo 'text' | ssh test@$192.168.1.35 'cat >> /remote_file_path'