shell - 在 $'...' 引用的字符串中扩展变量
问题描述
我正在尝试在特定行之后立即附加行
echo $'oSAMPLEINSERT\E:x\n' |vi +/"$search_string" config.txt
我可以使用变量(例如 $SampleIns)而不是硬编码字符串“SAMPLEINSERT”吗?有人可以帮忙吗
解决方案
您可以更改字符串中间的引用上下文。(您的代码实际上已经这样做了:在未引用的上下文和双引号的上下文中+/"$search_string"
扩展+/
部分)。$search_string
将包含变量的部分放在双引号内,将需要C风格反斜杠转义处理的部分放在 中$''
,如下:
echo "o${SampleIns}"$'\E:x\n'
如果包含反斜杠序列,请将它们替换为它们预先SampleIns
使用的字面值:printf %b
printf -v SampleInsLiteral '%b' "$SampleIns"
echo "o${SampleInsLiteral}"$'\E:x\n'
推荐阅读
- android - JSONObject 使用枚举解析字段
- abap - ABAP,SQL,是否可以在单个查询中处理 NM 关系?
- spring - 如何从 application.yml 正确获取 spring.datasource.username
- arduino - Arduino IDE 中从 int 到 char* 的无效转换
- unit-testing - 如何验证在飞镖单元测试中作为参数传递的函数
- javascript - MongoDB 无法获取所有数据
- python - 从字符串中删除子字符串,如 lstrip 但不是单个字符
- delphi - Delphi DunitX,我如何获得当前正在运行的测试的名称?
- java - 仅当字符串包含字母、数字、空格或逗号时才打印字符串
- algorithm - 寻找最长交替序列长度的动态算法