В POSIX sh замена строки не определена. при попытке сделать PASS2 = "$ {PASS // [$ {special_chars}] /}" - PullRequest
0 голосов
/ 09 апреля 2020

Мой код:

special_chars='[=!=][=@=][=#=][=$=][=%=][=&=]'
PASS="e@0cc3auZeeSio&G"

PASS2="${PASS//[${special_chars}]/}"

Я хочу, чтобы в PASS2 были все символы PASS - специальные символы. Это работает нормально, но при этом возникает ошибка проверки оболочки.

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}"]/)

Это не работает функционально.

1 Ответ

0 голосов
/ 09 апреля 2020

Этот скрипт проходит проверку оболочки:

#!/bin/sh

special='!@#$%&'
PASS="e@0cc3auZeeSio&G"
PASS2=$(printf %s "$PASS" | tr -d "$special")
echo "$PASS2"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...