То, что я ищу, является чем-то, что выполнило бы ряд команд как это:
# cat file1 >> concated_file
# cat file2 >> concated_file
# cat file3 >> concated_file
# cat file4 >> concated_file
Но не потребовал бы, чтобы я перепечатал целую команду 3 дополнительные времена. Возможно, просто смогите заменить аргумент от предыдущей команды с синтаксисом как следующее:
# cat file1 >> concated_file
# s/file1/file2
# s/file2/file3
# s/file3/file4
Я знаю, что, если последним аргументом является то же, Вы могли бы сделать это:
# cp -p test1.txt test2.txt
# chmod 777 $_
# chown nimmylebby: $_
И Вы могли также использовать циклы Bash как так:
# for f in 'file1' 'file2';
> do
> chmod 750 $f;
> done
Однако вышеупомянутые 2 примера не то, что я смотрю. Я просто хочу выполнить ряд команд, которые только отличаются одним аргументом, не используя для циклов. Действительно ли это возможно? Не могло бы всего лишь надеяться, что это ;-).
Нажмите Up, отредактируйте команду по мере необходимости, нажмите Enter.
Как ранее, но принимают меры, чтобы изменяющееся слово было последним в команде для более легкого выпуска, например, cat >> concated_file file1
. Это просто с Вашей командой в качестве примера, не так во всех случаях.
Определите функцию, принимающую переменное участие как аргумент: f () { cat "$1" >> concated_file; }
. Затем вызывайте функцию несколько раз: f file1
, f file2
, …
Используйте расширение истории. Здесь можно сделать ^file1^file2
.
Возможно, то, в чем Вы нуждаетесь, является функцией:
function mycat() { cat $1 >> concated_file; }
mycat file1
mycat file2
mycat file3
mycat file4