当前位置: 首页 > 面试题库 >

使用SSH时转义引号

漆雕升
2023-03-14
问题内容

我正在尝试为我的PHP应用程序构建一个简单的部署脚本。我知道有几种工具可以完成这项工作(Capistrano,Phing等),但是对于我的简单部署例程而言,它们似乎需要大量工作。

我使用sshpass避免一遍又一遍地输入密码。但是,在上传压缩的安装程序之后,我需要将ssh插入服务器并运行一些命令。sed之一。因此,引号破坏了我的脚本。就像这样:

sshpass -p foo ssh user @ host“
   cd / www / htdocs / foo / bar 
   回显“解压缩并删除安装程序”
   tar -zxf install.tar.gz

   sed“ s / define('环境','开发'); / define('环境','生产');” index.php> tmp && mv tmp index.php
   sed“ s / define('ENVIRONMENT','development'); / define('ENVIRONMENT','production'); /” admin / index.php> tmp && mv tmp admin / index.php

”

如您所见,我使用双引号启动SSH语句,但我还需要在sed上使用它们。

任何建议将不胜感激。谢谢!


问题答案:

逃脱内部引号是正常的方法。这行不通吗?

sshpass -p foo ssh user@host "
cd /www/htdocs/foo/bar
echo 'Untar and remove installer'
tar -zxf install.tar.gz

sed \"s/define('ENVIRONMENT', 'development');/define('ENVIRONMENT', 'production');\" index.php > tmp && mv tmp index.php
sed \"s/define('ENVIRONMENT', 'development');/define('ENVIRONMENT', 'production');/\" admin/index.php > tmp && mv tmp admin/index.php

"


 类似资料:
  • 问题内容: 我正在尝试执行一些超级简单的o日志文件解析,所以我正在使用如下方法: 并非常适合以下输入: 要么 只是说些什么。 我该如何转义逗号,使其与中间逗号不匹配? 例如,如果我要在其中一部分中加入逗号: 我在想类似的东西: 但是我不知道如何创建拆分来避免匹配逗号。 我试过了: 但是,这是行不通的。 问题答案: 您可以使用否定的外观来解决它。 基本上说,在 _ 没有反斜杠的情况下_拆分每个。 输

  • 转义是一种引用单字符的方法。通过在特殊字符前加上转义符 来告诉shell按照字面意思去解释这个字符。 需要注意的是,在一些特定的命令和工具,比如 echo 和 sed 中,转义字符通常会起到相反的效果,即可能会使得那些字符产生特殊含义。 在 echo 与 sed 命令中,转义字符的特殊含义 n 换行(line feed)。 r 回车(carriage return)。 t 水平制表符。 v 垂直制

  • 本文向大家介绍JavaScript 转义引号,包括了JavaScript 转义引号的使用技巧和注意事项,需要的朋友参考一下 示例 如果您的字符串用单引号引起来,则需要用反斜杠转义内部文字引号 \ 双引号也是如此: 如果要在字符串中存储HTML表示形式,则必须特别注意转义引号,因为HTML字符串大量使用了引号,即在属性中: HTML字符串中的引号也可以使用'(或')表示为单引号,而

  • 问题内容: 希望能帮助您理解“ Java并发实践”中的以下内容: 从构造函数中调用可重写的实例方法(既不是私有方法也不是final方法)也可以使this引用转义。 这里的“转义”是否仅表示在实例完全构建之前,我们可能正在调用实例方法? 我看不到“ this”以任何其他方式逃避了实例的范围。 ‘最终’如何防止这种情况的发生?我缺少实例创建中的’最终’某些方面吗? 问题答案: 这意味着在类之外调用代码

  • 问题内容: 我正在使用Jinja2使用Python3创建Golang代码。我需要在最终代码中将引号中的一些参数传递给函数,但Jinja2不会转义双引号。我的python代码类似于: 我的模板是: 我在控制台中得到的内容(python代码中的打印内容): 我在Go的最终代码中想要什么: 我在最终代码中实际得到的是: 我已经尝试过: 他们都没有我想要的。有任何想法吗? 谢谢 :)) “解决了”: 我从

  • 问题内容: 如果JSON字符串如下,如何转义双引号? 我想对值 TEST中 的次级双引号进行转义。 我已经尝试了以下方法,但是它不起作用。 我想念什么? 问题答案: 它应该是: 首先,我将外部引号更改为单引号,因此它们不会与内部引号冲突。然后,我将反斜杠放在最里面的引号之前,以使其转义。而且我避开了反斜杠,以便按字面意义对待它。 使用JSON函数可以获得相同的结果: