2017-01-03 2 views
-1

У меня есть сценарий bash, который открывает вторую программу. Для этого я использовал эту команду:Сценарий вызова (имя программы) над текстовым файлом

programname -parameter -parameter

Но название программы может быть различным. Например, "program1", "program2", "programABC". Имя этой программы сохраняется в файле с именем «config» и может быть там изменено (я не хочу использовать здесь параметры, мне нужен этот файл конфигурации).

Например, когда мне нужно «program2» Я

echo "program2" > config

Параметры в моем сценарии не всегда одинаковы - независимо от того, какую программу я использую.

Теперь мой сценарий должен получить первую строку из моего файла «config» и прикрепить два параметра (первый заданный код).

Я пытался что-то вроде

cat config | -parameter -parameter

Но это не будет работать.

+0

Имеет ли файл 'config' только имя программы для запуска и никакого другого содержимого? – Inian

ответ

2

избежать useless-use-of-cat, попробуйте

"$(<config)" -parameter -parameter 

Это будет работать, как вам нужно, только если файл config имеет только имя программы для запуска.

+0

Это решение. Но где разница между 'cat' и вашим ответом (или с ответом ниже с' '$ (cat config)" ')? Я вижу, что это намного короче из-за «недостающих» труб, но могу ли я получить другие преимущества? – ipo

+0

@ipo: AFAIK, лучшее использование оболочки с точки зрения использования каких-либо не родных инструментов оболочки, но с использованием встроенных функций. Может быть, меньше циклов процессора, но не уверен в этом минимальном вводе файла. – Inian

+0

Хорошо, спасибо. – ipo

1

Я предлагаю:

"$(cat config)" -parameter -parameter 
+0

Спасибо, это также работает. – ipo

Смежные вопросы