在 POSIX sh 中,字符串替换是未定义的。同时尝试执行 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}"]/)

这些功能不起作用。

此脚本通过shell检查:

#!/bin/sh
special='!@#$%&'
PASS="e@0cc3auZeeSio&G"
PASS2=$(printf %s "$PASS" | tr -d "$special")
echo "$PASS2"

相关内容

  • 没有找到相关文章

最新更新