Расширение Replance для ошибки сценария оболочки - PullRequest
0 голосов
/ 28 сентября 2019

Я пытаюсь написать сценарий оболочки (sh), где я получаю ниже ошибка

переменная I содержит:

 test.txt

код:

 echo "${i/.txt/}"

Ошибка:

 just.sh: 16: just.sh: Bad substitution

ожидаемая строка вывода:

 text

Воспроизвести шаги

Создать файл:

 touch text.txt

Создать файл test.sh contentиспользуя любой из редакторов

код:

#!/bin/sh
for i in `find *.txt`
do
    echo "$i"
    echo "${i/.txt/}"
done

Как запустить:

 sh test.sh 

1 Ответ

1 голос
/ 28 сентября 2019

sh не bash.Исправьте свой shebang (1-я строка) как #!/bin/bash first.

References

  • Разница между sh и bash , ищите "расширение" в теме

    Bash предлагает широкий набор расширенных нестандартных расширений параметров, таких как ${substring:1:2}, ${variable/pattern/replacement}, преобразование регистра и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...