BASH:替换引号并检查是否为空

时间:2018-03-22 15:22:50

标签: linux bash

我可以用两个引号替换单引号。 但我还需要检查一个值是否为空。

以下代码返回: 它是:找不到命令

original="it's smth"
modified=${original:-NULL}
$modified=${modified//\'/\'\'}
echo "$modified"

有什么问题?

2 个答案:

答案 0 :(得分:0)

在第三行中,删除前导$

答案 1 :(得分:0)

bash正在阅读你的命令:

original="it's smth" bash收到一个名为original的变量,一切都很好

modified=${original:-NULL} bash接收名为modified的第二个变量,默认为第一个变量。

$modified=${modified//\'/\'\'} bash被告知要处理/运行某些内容,因为该行以$modified开头,因为$。将前一个字符串作为现在的命令,它会立即被卡住,因为在其已知命令中确实找不到该命令it's的第一部分。

echo "$modified"只返回没有错误,因为此处 - echo之后 - $是对第二行的引用,告诉bash重现名为' modified&的变量#39;这等于原来的'。输出为it's smth