У меня не очень разрешительная программа для работы. К сожалению, эта программа не только позволяет
"command -a -b -c"
или
"command -abc"
Поэтому я всегда должен набрать следующее
command -a && command -b && command -c
Я уверен, что есть более эффективный способ напечатать это, но не могу понять это.
command-line
Douda
источник
источник
cmd -a; cmd -b; cmd -c
в долгосрочной перспективе, как и все люди.command
. В общем случаеcommand -a -b -c
,command -abc
иcommand -a && command -b && command -c
имеют различный смысл ..Ответы:
Вы могли бы сделать:
Или:
с некоторыми снарядами.
Но будьте осторожны, что это влияет на stdin
command
.С
zsh
:Или просто:
Ни один из них не прервется, если произойдет
command
сбой любого из вызовов (кроме случаев, когда произойдет сбой со статусом выхода 255).Для этого вы бы хотели:
Это все еще не до состояния
$?
выхода из неуспешногоcommand
вызова). Вы можете изменить это на:Но к тому времени это уже дольше чем:
источник
Вы можете ссылаться на первое слово предыдущей командной строки (
command
в вашем случае) путем расширения истории,!!:0
а затем вы можете просто добавить необходимые аргументы к нему.Например:
Обратите внимание, что, как указал Стефан Шазелас , это также может привести к неожиданным расширениям.
источник
!!:0
(в оболочках, которые поддерживают расширение истории csh) будет расширен до первого слова предыдущей командной строки , а не предыдущей команды.uname
а затемecho foobar && !!:0 spamegg && !!:0 baz
, что расширится доecho foobar && uname spamegg && uname baz
.!
достаточно:!:0
но с точками @ StéphaneChazelas лучше использовать!#:0
где!#
среднее значение Вся командная строка набрана до сих пор .Как насчет функции оболочки, оборачивающей цикл?
Где «вещь» - это фактическая команда, которую вы хотите вызвать. Тогда просто
Вы даже можете обобщить это для любой команды:
затем
источник
Среди креативных и проницательных ответов вот что-то простое во имя набора меньшего количества символов:
источник
Создайте сценарий оболочки MultiRun , который принимает первый параметр в качестве команды и запускает его с остальными параметрами по одному.
./ MultiRun curl ABCD
Ваш скрипт должен принять curl в качестве команды и запустить "curl A", "curl B", "curl C", "curl D". Теперь, поскольку ваш сценарий находится под контролем, вы можете решить, будет ли сбой в какой-либо одной команде завершать сценарий, или переходить к следующему параметру, или ждать ввода пользователя или что-то еще. Вы даже можете выбрать статус завершения всего сценария, основываясь на выполнении отдельных команд.
MultiRun Script может быть примерно таким:
Теперь выполните это:
./MultiRun echo 1 2 3 4,
чтобы получить выходные данные «echo 1», «echo 2», «echo 3», «echo 4» следующим образом:
1
2
3
4
Это очень гибкое и многоразовое решение.
источник