Проблема, казалось, была решена, когда я использую команды bash без ((и)).
Использование команд Bash во вложенных циклах в Makefile
504
Umar
Я хочу использовать команды bash во вложенных циклах в make-файле, мой текущий код не работает. Может ли кто-нибудь направить меня, в чем может быть проблема. Я написал простой код в тестовой цели. Здесь я хочу перейти в каталог DIR_S / case1 и скопировать файл rtt.csv в другой каталог DIR_D / rtt /.
test: cn=1; while [[ $$cn -le 2 ]] ; do \ echo $$cn ; \ ((cd $(DIR_S)/case\ $$cn)) ; \ ((cp rtt.csv $(DIR_D)/rtt/)) ; \ ((cn = cn + 1)) ; \ done
Нет ошибки при запуске, но я вижу это сообщение и строка не выполняется
/bin/sh: ((: cd /Users/Umar/Desktop/dummy1/case 1: division by 0 (error token is "/Umar/Desktop/dummy1/case 1")
Я заметил, что если
cd /Users/Umar/Desktop/dummy1/case 1
в командной строке это не будет работать из-за пробела, я также обновил приведенную выше строку
((cd $(DIR_S)/case\ $$cn)) ; \
в
((cd $(DIR_S)/case\\ $$cn)) ; \
но все же эта строка не выполняется. Может кто-нибудь подсказать мне, как использовать команды bash во вложенных циклах в Makefile. (Я упомянул вложенные циклы, поскольку собираюсь добавить еще один цикл после этого цикла)
1 ответ на вопрос
0
Umar
Использование `((` для _arithmetic_, в то время как `(` для _subshell_. Использование одиночного `('хорошо, если вы хотите изменить каталог и безоговорочно вернуться в нужное место в конце subshell. Помните, что арифметика выполнена в subshell теряется при возврате subshell ...
levif 9 лет назад
0
Похожие вопросы
-
3
Ускорение загрузки OS X на годичной MBP
-
3
Как повторно связать резервную копию Airport Time Machine после перехода на новый Mac?
-
6
Как вы отключите звук запуска на Mac?
-
-
5
Почему мой Macbook сильно нагревается при использовании Boot Camp?
-
7
Есть ли в Mac OS X эквивалент Ctrl + Tab?
-
6
Способ переноса данных Time Machine на новый диск
-
13
Сброс положения Mac OS X Windows после отсоединения внешнего монитора
-
10
Программное обеспечение для резервного копирования для Mac OS X
-
5
Как удалить и удалить .kext в Mac OS X?
-
4
Как переназначить клавишу извлечения на клавиатуре MacBook, чтобы «удалить»?