usando subshells de um script bash

2

Estou usando uma parte do software (QIIME) que usa seu próprio subshell para executar comandos:

You no-longer type "macqiime" before QIIME commands! Instead, you just type "macqiime" once when you start a new terminal session. That will start a new subshell with the QIIME environment variables sourced.

Once you've done that, you can run all the qiime commands you want without the "macqiime" command.

Estou desenvolvendo um script básico que inicia automaticamente as tarefas e que deve executar automaticamente um script pelo ambiente QIIME. Eu sei como fazer isso manualmente a partir da linha de comando (como detalhado acima); no entanto, não sei como fazer isso automaticamente a partir do script bash.

Alguém pode ajudar? Obrigado!

EDITAR:

você pode encontrar uma solução para o que eu estou tentando fazer lendo a seção " Advanced hacking MacQIIME "

    
por Constantino 30.09.2014 / 20:52

1 resposta

1

Você deseja executar um script usando macqiime como o interpretador.
Isso é o que você pode especificar com o #! na primeira linha.

Inicie seu script com isso como a primeira linha (com o caminho real):

#!/path/to/macqiime

Se não estiver claro onde em PATH o programa está, mas está em PATH , você pode usar

#!env macqiime

como primeira linha - tem que ser realmente a primeira linha, sem linhas em branco e sem linhas comentadas antes.

Adendo

Descobrimos que o comando macqiime não pode ser usado como descrito acima, veja abaixo como ele é usado. Mas isso não funciona assim parece não ter outra razão a não ser que é um script muito minimalista que simplesmente não implementa leitura de stdin.

Assim, no caso geral, para outros programas que se comportam como descrito na pergunta, a resposta acima deve ser aplicada.

No caso especial de macqiime , a documentação explica o que fazer em vez de usar essa software em um estilo de interpretador de shell:

Você tem que escrever seu próprio script com algo como:

#!/bin/bash
source /macqiime/configs/bash_profile.txt
align_seqs.py -i "$@"

Se o script for chamado de qiime_script , você poderá chamá-lo a partir da linha de comando com: qiime_script options , onde as opções são passadas para $ 1, $ 2 etc.

    
por 30.09.2014 / 21:21