sed中没有未命令的's'命令[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sed中没有未命令的's'命令[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
下面的命令正在一个简单的bash脚本中使用,以获取mysql 5.7中的临时密码。
vzctl exec $VEID 'defaultpass=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n 's/.*root@localhost: //p')'
但是,当我运行测试命令时,它会说以下内容:
sed: -e expression #1, char 19: unterminated `s' command
有人可以解释一下我到底做错了什么。我绝不是专家,但我认为这是正确的。我也试过替换'with',但是没有用。没有错误,但是$ defaultpass然后返回空。
后续:遗憾的是,当我使用双引号时,如pii_ke所述,变量的输出为空/空白。所以这不起作用。也许这里有别的错了?
答案
由于vzctl
命令的整个第三个参数引用了单引号。你应该将sed
命令放在双引号内:
vzctl exec $VEID 'defaultpass=$(cat /var/log/mysqld.log | grep "A temporary password is generated for" | tail -1 | sed -n "s/.*root@localhost: //p")'
以上是关于sed中没有未命令的's'命令[重复]的主要内容,如果未能解决你的问题,请参考以下文章