Рейтинг:1

запуск серии команд дает другой результат, чем запуск их по сценарию

флаг fr

это скрипт:

#!/бин/ш
рм -рф гит/
mkdir -p git/{c,ds/{include,test},projects,quizzes,system_programming}
find git/ -type d -exec touch {}/dummy.md \;

Это желаемый результат:

гит/
âââ c
âââ dummy.md
âââ ds
âââ dummy.md
â âââ включать
❗️dummy.md
ââ тест
âââ dummy.md
âââ dummy.md
ââ проекты
âââ dummy.md
✓ викторины
âââ dummy.md
âââ системное_программирование
    âââ dummy.md

7 каталогов, 8 файлов

Это происходит, когда я запускаю каждую из команд отдельно одну за другой.

Когда я запускаю скрипт, изменив его разрешения: chmod +x имя_скрипта.sh

Я получил:

гит/
âââ {c, ds
âââ dummy.md
â  âââ {include,test},projects,quizzes,system_programming}
âââ dummy.md
âââ dummy.md

2 каталога, 3 файла

вижу проблема в мкдир командой, создав неправильную иерархию каталогов.

Итак, я проверил chmod команда,
я бегу chmod +x+w имя_скрипта.sh но я получаю тот же результат.

Почему это?
Спасибо.

флаг cn
Твоя проблема с бабой, "ш". bash - это то, что расширяет { и }. Вы, вероятно, используете bash в командной строке, а /bin/sh указывает, вероятно, на тире. Используйте `#!/bin/bash`,
флаг fr
Спасибо, это решило проблему. Итак, если я хочу использовать команду, которая имеет `{ }` в сценарии, я должен использовать `#!/bin/bash` вместо `#!/bin/sh`?
флаг fr
@muru Спасибо, это проясняет.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.