Команды Bash в Makefile

1682
Umar

Я хочу использовать команды bash в Makefile вместе со скриптами MATLAB. В настоящее время, когда я помещаю простую команду bash в Makefile и запускаю эту цель, я получаю ошибку

/ bin / bash: ./test1: нет такого файла или каталога

Я использовал простую команду Bash

satuaratedrate: bash -c "cd ~/Desktop/r4/saturatedrate/iperf_s"; echo "I'm in some_dir"; ./test1; echo "is it working" 

Я также поместил SHELL := /bin/bashв начало файла make, как предложено, войдите в описание ссылки здесь

Я использую Mac OsX

1
Посмотрите какое-нибудь руководство в сети о том, как создать make-файл. [Например, здесь] (http://www.cs.swarthmore.edu/~newhall/unixhelp/howto_makefiles.html). Возьмите рабочий make-файл и измените его. Обычно это более уютно. Кстати, опубликуйте весь файл makefile, чтобы можно было проверить его. Hastur 8 лет назад 1

1 ответ на вопрос

2
suspectus

Точка с запятой завершит команду bash. Итак, bash -c "cd ~/Desktop/r4/saturatedrate/iperf_s"; запускает оболочку bash и выполняет cdкоманду, затем завершается. Затем команда echo, а затем команда test1 - но test1 не существует в текущем каталоге. Помните, что команда оболочки, выдавшая cdкоманду, завершилась.

Эта команда make должна вызвать test1:

saturatedrate: bash -c "cd ~/Desktop/r4/saturatedrate/iperf_s/test1";  
когда я пытаюсь выполнить эту команду test1, которая находится в 'code' ~ / Desktop / r4 / satrate / iperf_s, запускается текущий каталог, из которого выполняется команда. Я хочу, чтобы test1 запускался в этом каталоге "~ / Desktop / r4 / насыщенный / iperf_s /" Umar 8 лет назад 0
`bash -c" cd ~ / Desktop / r4 / насыщенный / iperf_s && ./test1 "` работает @suspectus, большое спасибо Umar 8 лет назад 1
@Umar - Рад слышать, что у вас это работает сейчас. suspectus 8 лет назад 0

Похожие вопросы