linux - 通过 ssh 连接使用命令 sed 和 echo

标签 linux bash ssh

我知道有人已经要求类似的东西,但我无法在远程主机中使用该命令。我有狂欢:

#!/bin/bash
IMSI="732111030120252"
ssh openbts@192.168.10.12 bash -c " '
sed -i '61,$d' /etc/asterisk/sip.conf   #erase the lines fron 61 to end of the file sip.conf
sed -i '288,$d' /etc/asterisk/extensions.conf
echo "[IMSI$IMSI].(sets)" >> /home/openbts/Desktop/Prueba  #Write that expression inside Prueba (Ignore .)

' "

但是,他正在考虑$d()类似于局部变量,而不是 sed 和 echo 命令的一部分。

我发现你可以使用\\\$d或 echo 内的所有线路,但它们不起作用。

有人有想法吗?谢谢

最佳答案

您需要正确转义字符串,尤其是 $":

ssh openbts@192.168.10.12 "sed -i '61,\$d' /etc/asterisk/sip.conf;
  sed -i '288,\$d' /etc/asterisk/extensions.conf;
  echo \"[IMSI\$IMSI].(sets)\" >> /home/openbts/Desktop/Prueba;"

关于linux - 通过 ssh 连接使用命令 sed 和 echo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23770471/

相关文章:

linux - 没有 stdlib 的汇编器 x86

linux - Bash-Command 获取当前网络带宽使用率和CPU使用率

mysql - 如何将远程mysql数据库克隆到本地开发机器?

bash - 自动化 SSH 和运行命令

python - 如何在没有互联网的情况下与远程主机共享整个Python环境?

c - 如何使用 openMPI 实现递归斐波那契

c++ - 无法理解这个SEGFAULT

linux - 为 Bash 脚本组织多个文件路径的最佳实践

linux - 防止记录清除命令

linux - 在 Bash 中显示调用堆栈