我的bash脚本,我有一个带有$
符号的字符串变量,并且它没有被转义。它看起来像这样:
x="hello $world"
显然,当我echo "$x"
时,输出为hello
,因为$world
被解释为变量。我的目标是将字符串修改为hello \$world
。我尝试了几种技术,如下所示。他们似乎都没有工作:
y="$(echo "$x" | sed 's/\$/z/g')"
(输出hello
)
y="$(echo "$x" | sed 's/$/z/g')"
(输出hello z
,即使我没有在sed中转义\
甚至通过以下方式尝试了Bash的原生字符串替换:
y=${x//\$/z}
(输出hello
)
我意识到如果字符串没有存储在变量中,我可以轻松地做任何这些,但是我的脚本工作的方式,这个字符串将首先存储在变量中,所以我需要弄清楚如何添加之后\
。如果我创建字符串的新副本或编辑相同的字符串,我不在乎。
答案 0 :(得分:4)
赋值(peripheral(_:didReadRSSI:error:)
为空或未定义)与编写
...
peripheral.setNotifyValue(true, for: characteristicUpdatingEverySecond)
...
func peripheral(_ peripheral: CBPeripheral, didUpdateValueFor characteristic: CBCharacteristic, error: Error?) {
peripheral.readRSSI()
}
func peripheral(_ peripheral: CBPeripheral, didReadRSSI RSSI: NSNumber, error: Error?) {
print("Peripheral \(peripheral) read RSSI: \(RSSI)")
}
除非您从外部添加$world
,否则您对x="hello "
所做的任何操作都不会显示$x
。
也许你的意思是:
$
答案 1 :(得分:3)
您可以使用BASH
:
x='hello $world'
echo "${x//\$/\\$}"
hello \$world