我不想为我需要执行的每个流程编写脚本,而是喜欢将命令保存在文本文件中,然后将它们复制并粘贴到命令行上。当然,每次粘贴并运行命令时,命令的一些细节都会发生变化。然后我需要通过命令箭头并更改重要部分。所以,我想做这样的事情。
举个简单的例子:
chmod $1 /home/$2/.bashrc 740 bobsa
可以通过某种方式做到这一点吗?有xargs
什么东西可以用来做这个吗?我知道我可以在运行命令之前设置ENV
变量来实现此目的,但我希望从其他方面我可以最终完成谢谢!
答案1
如果您有经常使用的命令,请将它们编写为函数,并将它们存储在 shell 的启动文件中,例如.bashrc
.可以这样定义(尽管您需要一个更好的名称):
f() {
chmod "$1" "/home/$2/.bashrc"
}
并称为
f 740 bobsa
如果您需要经常在命令行上编辑命令,那么这不太有效。但即便如此,您也可以将函数定义放在同一命令行上并立即运行它:
f() { chmod "$1" "/home/$2/.bashrc"; }; f 740 bobsa
您{}
需要空格和分号,但您也可以使用空格和()
分号。他们启动一个子 shell,但你可能不介意:
f() (chmod "$1" "/home/$2/.bashrc"); f 740 bobsa
答案2
您可以使用带标志bash
的命令-c
,如下所示:
bash -c 'chmod "$1" /home/"$2"/.bashrc' bash 740 bobsa
请记住对 bash 命令使用单引号。