Задать вопрос
Kozack
@Kozack
Thinking about a11y

Как передать все параметры в BASH внутреннему вызову?

Здравствуйте. Суть в следующем.
У меня есть файл ./start.sh, который условно служит для более простого запуска более длинной команды
/usr/local/lib/path/to/lib/bin /home/user/path/to/some/file
. Так вот. Возникла необходимость передать во внутренний вызов несколько параметров.
Хочу чтобы все параметры при вызове
./start.sh --max=100
Передавались и на внутренний вызов
/usr/local/lib/path/to/lib/bin /home/user/path/to/some/file --max=100

Как реализовать передачу всех параметров на внутренний вызов?
  • Вопрос задан
  • 458 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
saboteur_kiev
@saboteur_kiev Куратор тега bash
software engineer
Передавайте как "$*" или "$@"

./start.sh
/usr/local/lib/path/to/lib/bin /home/user/path/to/some/file $@


Но в вашем случае с однострочной командой, проще сделать алиас
alias STARTSH='/usr/local/lib/path/to/lib/bin /home/user/path/to/some/file'

и вызываете:
STARTSH --max=100

Единственное, что запихните этот алиас в .profile или .bashrc, чтобы он был доступным сразу при входе.
автодополнение работает с алиасами, поэтому достаточно ST+tab
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@strelmax
внутренний вызов сделайте так
/usr/local/lib/path/to/lib/bin /home/user/path/to/some/file $1
и можете задавать параметр
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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