我试图在Linux服务器中执行一个命令来获取所有服务器都需要重新设置根密码的命令,因为我正在使用expect脚本实现它的自动化,我的命令包含双引号和重音`等特殊字符。因此,在执行时,它在双引号后给出额外的字符作为错误。
send " chage -l root | grep -i "Password expires" | if [[ `awk -F : '{print $2}' ` = "never" ]] ; then echo "password needs to be changed " ;else echo "skipping reset " ; fi;\r"我尝试使用带有双引号的\,但是错误保持不变。
发布于 2016-03-12 05:57:46
如果您想要一个在Tcl中没有插值的字符串(语言expect使用),并且它没有要展开的{}字符或变量,那么将它用{}括起来。例:
send { chage -l root | grep -i "Password expires" | if [[ `awk -F : '{print $2}' ` = "never" ]] ; then echo "password needs to be changed " ;else echo "skipping reset " ; fi;}
send \rhttps://unix.stackexchange.com/questions/269311
复制相似问题