在 POSIX sh 中,字符串替换是未定义的。在尝试执行 PASS2="${PASS//[${special_chars}]/}" 时
In POSIX sh, string replacement is undefined. while trying to do PASS2="${PASS//[${special_chars}]/}"
我的密码是
special_chars='[=!=][=@=][=#=][=$=][=%=][=&=]'
PASS="e@0cc3auZeeSio&G"
PASS2="${PASS//[${special_chars}]/}"
我希望 PASS2 具有 PASS 中的所有字符 - 特殊字符。
这工作正常,但存在 shell 检查错误。
PASS2="${PASS//[${special_chars}]/}"
^-- SC2039: In POSIX sh, string replacement is undefined.
我试过
PASS2=$(printf '%s' "$PASS2" | PASS//["${special_chars}"]/)
和
PASS2=$(printf '%s' "$PASS" | PASS//["${special_chars}"]/)
这些在功能上不起作用。
此脚本通过了 shellcheck:
#!/bin/sh
special='!@#$%&'
PASS="e@0cc3auZeeSio&G"
PASS2=$(printf %s "$PASS" | tr -d "$special")
echo "$PASS2"
我的密码是
special_chars='[=!=][=@=][=#=][=$=][=%=][=&=]'
PASS="e@0cc3auZeeSio&G"
PASS2="${PASS//[${special_chars}]/}"
我希望 PASS2 具有 PASS 中的所有字符 - 特殊字符。 这工作正常,但存在 shell 检查错误。
PASS2="${PASS//[${special_chars}]/}"
^-- SC2039: In POSIX sh, string replacement is undefined.
我试过
PASS2=$(printf '%s' "$PASS2" | PASS//["${special_chars}"]/)
和
PASS2=$(printf '%s' "$PASS" | PASS//["${special_chars}"]/)
这些在功能上不起作用。
此脚本通过了 shellcheck:
#!/bin/sh
special='!@#$%&'
PASS="e@0cc3auZeeSio&G"
PASS2=$(printf %s "$PASS" | tr -d "$special")
echo "$PASS2"