Если Вы изменяетесь между каталогами далеко в файловой системе. Я рекомендую автопереход.
Предположение, что Вы используете GNU bash
или что-то подобное:
Возможно, a for
цикл?
for x in a b
do
run-command --a --whole --lot --of --flags parameter $x
done
который может также быть записан в одной строке как for x in a b; do run-command --a --whole --lot --of --flags parameter $x ; done
Можно также использовать функцию, которая не ограничивает Вас наличием Вашего изменяющегося аргумента в конце:
runcom() { run-command --a --whole --lot --of --flags parameter "$1" ; }
runcom a
runcom b
Существует alias
команда в ударе:
$ alias shotcommand='run-command --a --whole --lot --of --flags parameter'
Использование: $ shotcommand a
Вы можете выполнять замены в предыдущей команде. Это не сработает с вашим примером {a, b}, потому что все экземпляры 'a' будут заменены на 'b'. Но представьте, что вы хотите выполнить следующие команды:
run-command --a --whole --lot --of --parameter --format xml
run-command --a --whole --lot --of --parameter --format son
Вы можете сделать это с помощью
run-command --a --whole --lot --of --parameter --format xml
!!:s/xml/json/
Bash выполнит замену и запустит
run-command --a --whole --lot --of --parameter --format json
Use gs (глобальная замена) для выполнения нескольких замен, а не только одной.
Если сеанс остается активным, то он остается активным. Там нет никаких трюков, просто буфер и TCP делает это дело.
Если соединение с ssh-сеансом потеряно, а затем восстановлено из-за «плохого» подключения к Интернету, приложение, запущенное в этом сеансе, никогда не знает. Сеанс продолжается.
Отключение монитора (при просмотре консоли) не должно влиять на приложение, запущенное на этой консоли.
-121--69302-Но повлияет ли отключение на содержимое файла? Я думал, это не так.
Если соединение прервано, сеанс завершается, и оболочка и команда прекращаются. Вы заинтересованы в выполнении команд на удаленном сервере, даже если вы отключаетесь, вы должны искать nohup
команду, экран
или tmux
мультиплексор или mosh
для плохих оболочек соединения.
Если вы не создаете сценарий и просто хотите легко запустить его в командной строке, команда xargs
, вероятно, является тем, что вы ищете.
xargs возьмет кучу содержимого из стандартного ввода и при необходимости будет использовать его в качестве аргументов для команды, выполняя эту команду несколько раз.
Попробуйте следующее:
echo parameter a,parameter b | xargs -n 1 -d , run-command --a --whole --lot --of --flags
В этом примере вы просто даете xargs перестановки, которые вы хотите, чтобы он был запущен.
Флаг «-n 1», указывающий xargs использовать только 1 из аргументов для каждого прогона.
Флаг «-d» указывает xargs искать «,» на входе в качестве разделителя между аргументами для выполнения. (Обратите внимание, что если аргумент имеет, «» в нем вы должны будете изменить это на что-то другое. Если в аргументах нет мест, этот флаг можно опустить.)
Для получения дополнительной информации см. man xargs
.
for x in {a..z}; do ; run-command --a --whole --lot --of --flags parameter $x ; done
– h3rrmiller 09.01.2013, 20:11{a..z}
,*.pdf
,$(find ...)
... – njsg 09.01.2013, 20:34;
послеdo
ключевое слово. – jimp 23.11.2016, 20:00;
. – njsg 24.11.2016, 10:37