linux - 为什么在 shell 中使用“echo”时我的部分字符串会消失?
问题描述
我试图通过 Linux 命令行使用 echo 在文件中写入一些内容:
echo -e "<?php\nprint_r($_GET[\"name\"]);" > print.php
但我明白了:
<?php
print_r(["name"]);
是什么让$_GET
消失?
解决方案
在 bash 中,美元符号表示一个变量,即使在字符串内部也是如此。要让它打印$_GET
,你必须$
用反斜杠转义:
echo -e "<?php\nprint_r(\$_GET[\"name\"]);" > print.php
推荐阅读
- php - 限制星期几和时间 am pm 的预订
- spring-boot - Spring Cloud Config Client 不适用于 Spring Boot 2.5.1
- android - 如何使分组条形图水平滚动?
- bash - Bash 一种记录不可变变量的方法
- node.js - 使用 node-ffi-napi 调用函数(总是)会泄漏内存
- solr - SolrCloud 查询未找到数据但查看数据存在
- php - 如果返回非 FALSE,Windows 上的 file_put_contents() 是否不能保证实际写入文件?
- kotlin - 无法等待协程在 kotlin 中使用 join() 完成?
- mysql - 完全导入时无法将大数据从 mysql 导入 solr
- unreal-engine4 - 在游戏模式中更改相机演员的控制