2016-03-09 5 views
1

Я пытаюсь запустить процесс, чтобы открыть два дополнительных окна оболочки и отправить им команды для запуска некоторых модулей узлов, которые я установил. Это мой первый раз, когда я делаю скрипты bash, поэтому, если я что-то прикручу, не стесняйтесь, дайте мне знать.Команда оболочки для открытия других команд оболочки и запуска

У меня есть этот скрипт

#!/bin/bash 

# [-g] 
# [-h] 
# [-l <location to start the http-server on --default ./>] 
# [-p <port to start the http-server on --default "8111">] 

run_gulp=false 
run_http=false 
run_http_port=8111 
run_http_location=./ 

while getopts ghl:p: opt; do 
    case $opt in 
     g) 
      run_gulp=true 
      ;; 
     h) 
      run_http=true 
      ;; 
     l) 
      run_http_location=$OPTARG 
      ;; 
     p) 
      run_http_port=$OPTARG 
      ;; 
     \?) 
      echo "Invalid option: -$OPTARG" >&2 
      ;; 
    esac 
done 

if [ $run_gulp == true ] 
then 
    start mintty "gulp" # this works 
fi 

if [ $run_http == true ] 
then  
    start mintty "http-server $run_http_location -p $run_http_port" 
fi 

я его в файле с именем startdev в папку, которая находится на моей переменной PATH (я на Windows 10), так что я могу открыть оболочку из любой точки мира и введите startdev -g или startdev -g -h, чтобы запустить это.

Это все, что я могу добавить, когда он открывает оболочку и отправляет команду gulp, она обнаруживает мой gulpfile и может запускать задание по умолчанию на нем, как я этого хочу. Тем не менее, http-сервер не делает то же самое, он просто говорит мне http-server ./ -p 8111: No such file or directory.

ответ

1

Mintty рассматривает первый аргумент как имя команды, со всеми параметрами, которые вы передаете из-за qoutes. Аргументы программы, запущенные другой программой (то есть с помощью sudo, screen и т. Д.), Обычно передаются как отдельные аргументы, чтобы избежать разбора, поэтому вы должны попробовать start mintty http-server $run_http_location -p $run_http_port без кавычек.

+0

Ну, когда вы так выразились, это имеет смысл! Это решило проблему, спасибо тонну! –