1

我试图登录到一个文件(在远程服务器中,比如说/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"

但两者都没有工作

有什么帮助吗?

4

4 回答 4

7

您正在使用双引号,因此变量扩展将在本地发生。您应该使用单引号,以便命令原封不动地发送。

echo '$var'give $varwhileecho "$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。)

于 2012-09-30T21:42:26.197 回答
1

尝试:

ssh test@192.168.1.35 "echo '$var' >> /home/test/log.txt"
于 2012-09-30T21:38:25.363 回答
0

你试过了吗:

ssh test@$192.168.1.35 'echo "$var" >> /home/test/log.txt'

这应该有效。假设var是在您的计算机上而不是遥控器上设置的。

于 2012-09-30T21:37:41.997 回答
0

这是将 linux 机器上的一些文本放入另一台 linux 机器上已经存在的文件中的正确方法:

echo 'text' | ssh test@$192.168.1.35 'cat >> /remote_file_path'
于 2018-03-15T08:13:39.867 回答