Bash中,如何用替换词重复一系列命令

分享于 

2分钟阅读

电脑

  繁體 雙語

问题:

我要找的是一些可以执行如下命令的命令:


# 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个例子是收费的,而不是我所要查看的。 我只想执行一系列命令,这些命令只有一个参数,而不使用来进行循环。 这可能也许不是,但希望是这样的。


回答 1:

  • 按下,根据需要编辑命令,按Enter键。

  • 如前所述,可以安排更改单词到最后的命令中,为更简单的版本 比如, cat>> concated_file file1 使用示例命令非常简单,并非在所有情况下都如此。

  • 定义函数以变量部分作为参数: f () { cat"$1">> concated_file; } 然后多次调用该函数: f file1f file2,。

  • 使用历史扩展插件。 在这里你可以做 ^file1^file2


回答 2:

你可能需要的是一个函数:


function mycat() { cat $1>> concated_file; }


mycat file1


mycat file2


mycat file3


mycat file4





COM  rep  COMM  WORD  Comma  BASH