Make не работает при вызове из сценария bash

Поэтому я просто задал вопрос: за цикл над списком

Это отлично работает сейчас и выводит то, что мне нужно. Теперь я хочу связать это с make-файлом, который должен быть вызван для переменной в моем списке следующим образом:

#!/bin/bash mylist=( '$(call list_samples,AON_9,NT_1,SC_17)' '$(call list_samples,AON_10,NT_2,SC_18)' '$(call list_samples,AON_11,NT_3,SC_19)' '$(call list_samples,AON_12,NT_4,SC_20)' '$(call list_samples,AON_13,NT_5,SC_21)' '$(call list_samples,AON_14,NT_6,SC_22)' '$(call list_samples,AON_15,NT_7,SC_23)' '$(call list_samples,AON_16,NT_8,SC_24)' ) for SAMPLES_out in "${mylist[@]}"; do make -f make_gene_read_count.mk -n SAMPLES_OUT=\'${SAMPLES_out}\' done 

Это дает мне ошибку make: make_gene_read_count.mk:5: *** unterminated call to function `call': missing `)'. Stop. make_gene_read_count.mk:5: *** unterminated call to function `call': missing `)'. Stop.

Хотя, если я ставил эхо перед вызовом, чтобы сделать в моем сценарии bash, он выводит их следующим образом:

 make -f make_gene_read_count.mk -n SAMPLES_OUT='$(call list_samples,AON_9,NT_1,SC_17)' make -f make_gene_read_count.mk -n SAMPLES_OUT='$(call list_samples,AON_10,NT_2,SC_18)' make -f make_gene_read_count.mk -n SAMPLES_OUT='$(call list_samples,AON_11,NT_3,SC_19)' make -f make_gene_read_count.mk -n SAMPLES_OUT='$(call list_samples,AON_12,NT_4,SC_20)' 

Если я добавлю одно из этих эхо-сигналов в командную строку, make-файл работает отлично. Что мне не хватает?

Это makefile:

 IN_DIR = /data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/namesorted_bams list_samples = $(shell ls $(IN_DIR)/*$(1)* $(IN_DIR)/*$(2)* $(IN_DIR)/*$(3)* | sed 's/\.namesorted\.bam/\.gene\.read\.count/g') #SAMPLES_OUT := $(call list_samples,AON_9,NT_1,SC_17) all: $(SAMPLES_OUT) GFF := /data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me1.gff GFF_TEMP := $(GFF).temp.gff $(GFF_TEMP): $(GFF) sed 's/\*/./g' $< > $@ %.gene.read.count: %.namesorted.bam $(GFF_TEMP) htseq-count -t exon -m intersection-strict -f bam -r name -s no $^ > $@ 

Я также пытаюсь передать 2 переменные в мой make-файл, но это, похоже, не работает должным образом, если я делаю это так в моем списке сценариев bash:

 '$(call list_samples,AON_9,NT_1,SC_17) GFF=/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me1‌​.gff' 

Это ошибка, которую я получаю:

 qmake: *** No rule to make target `GFF=/data/DIV5/SASC/project-013-motor/analysis/runs/BWA_chipcap/BAMS/GFF/H3K4me1.gff', needed by `all'. Stop. 

One Solution collect form web for “Make не работает при вызове из сценария bash”

Вы не хотите, чтобы одинарные кавычки распространялись в make-файл. Не цитируйте их и замените их двойными кавычками – это будет поддерживать значение переменной как одно слово в оболочке.

 make -f make_gene_read_count.mk -n SAMPLES_OUT="$SAMPLES_out" 

Если вы хотите передать больше переменных, отделите их пробелами без кавычек:

 make VAR1="some value containing $val" VAR2='some other value' # ^ 
  • Могу ли я подключиться к команде cd?
  • ssh "-f" не возвращает руку в bash при прослушивании stdout / stderr
  • Использовать конфигурационный файл для моего сценария оболочки
  • Элегантный способ подсчета, сколько раз шаблоны из файла встречаются в другом файле
  • Как использовать grep или sed для извлечения нескольких совпадений в одной строке
  • Запрос терминала перезаписывает текущую строку
  • Как обновить установку управления контентом путем перезаписи существующих файлов через ssh и shell?
  • Сравнение столбцов в двух файлах и добавление первого файла
  • команда ssh и неинтерактивная оболочка без входа
  • Проблема с булевыми тестами && и || в bash
  • Получить переменную из строки
  • Interesting Posts

    grep для заглавных слов

    Как определить конкретную сеть WIFI, связанную udev?

    конвертировать шестнадцатеричные в двоичные

    Firefox – чтение URL-адресов открытых вкладок из командной строки

    Как увеличить корневой раздел во встроенной Linux с помощью fdisk и resize2fs, когда корневой раздел находится между двумя важными разделами

    Различные программы, не работающие после yum, устанавливают некоторые пакеты

    Тестирование файлов, содержащих определенные номера в его именах

    Переменная локали LANGUAGE – как установить английский как основной язык? Ошибка в gettext?

    Удалите все строки в файле A, содержащие строки в файле B

    Как отключить GUI для пароля в Gnome

    Как отключить автозапуск сервера X в Debian Jessie?

    Неправильный способ перечисления версий python из bash

    Как я могу задать определенный сервер для загрузки

    Могут ли возникнуть какие-либо повреждения при отмене диспетчера обновлений в Linux Mint во время обновления?

    Смонтируйте Google Drive в командной строке с помощью gvfs-google

    Linux и Unix - лучшая ОС в мире.