У меня есть скрипт bash, который ставит кучу команд, чтобы сделать каталог в текстовый файл. Затем введите cat
s файл в sh
для запуска команд. То, что я пытаюсь сделать, - это запустить только команду, если каталог еще не существует.Попытка с помощью команд трубопровода в оператор if
Вот что у меня есть:
Текстовый файл с чем-то вроде этого:
mkdir /path/to/a/directory
mkdir /path/to/another/directory
mkdir /path/to/yet/another/directory
В моем сценарии у меня есть строка, как этот
cat /path/to/my/file.txt | sh
Но есть способ сделать что-то подобное?
cat /path/to/my/file.txt | if path already exists then go to the next, if not | sh
Другими словами, я хотел бы пропустить попытку сделать каталог, если путь уже существует.
не может передавать команды в 'if'. Ваш проект звучит чересчур амбициозно. Получите более простую версию и решите, действительно ли это * стоит усилий по перестройке парадигм сценариев оболочки ;-). Традиционный тест на существование dir - это 'if! [[-d "$ dir"]]; то mkdir -p "$ dir"; fi'. Удачи. – shellter
Проблема заключается не в том, что вы не можете выполнить команду 'if' (что вы можете), это то, что вам действительно нужен цикл здесь. – chepner
@chepner: вы * можете * трубить в 'if' заявление !? Прохладный. Можете ли вы дать пример 1/2 лайнера здесь в качестве комментария? Спасибо – shellter