在远程ssh命令中传递带引号的变量

时间:2015-03-11 16:04:08

标签: linux bash shell ssh

我想通过几个文件来查找字符串。在这个例子中,我想要grep“test 1234”

#!/bin/bash

variable="test 1234"
ssh root@server "grep "$variable" /path/*"

此脚本不起作用,因为测试1234传递给服务器而不是“test 1234”

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您需要在命令中转义$variable周围的引号:

ssh root@server "grep \"$variable\" /path/*"

目前,变量正在扩展,但由于引号未被转义,因此命令会在文件test 中搜索文本1234 /path/*

答案 1 :(得分:1)

您应该能够使用\反斜杠字符转义双引号。

请参阅escape double quote in grep