将包含链接命令的函数分配给 .bashrc 中的别名的正确方法是什么?

将包含链接命令的函数分配给 .bashrc 中的别名的正确方法是什么?

我希望按如下方式调用别名:

alias_name arg0 arg1 arg2
  • arg0 = 文件名
  • arg1 = 通用字符串
  • arg2 = 最后一个命令的字符串表示形式

目的是通过调用别名并传递 arg0、arg1 和 arg2,它将调用一个函数,该函数将最后一个命令的输出附加到文件中,如果文件已存在,或者如果文件不存在,则应创建它并插入最后一个命令的输出。

注意:我的意图是文件格式如下:

String 1  

Command 1 

Output of command 1


String i

command i

Output of command i


String N

Command N

Output of command N

我试图在我的 .bashrc 中实现这一点,如下所示:

alias alias_name='function_name(){ printf "\n\nString_i: $1" >> $0 ; printf "\nCommand_i: $2" >> $0; printf "\nOutput_of_command_i: $(!!)" >> $0 };_log_error'

将此命令添加到我的 .bashrc 文件并执行 source ~/.bashrc 后,我执行了以下命令:

ls -l

然后我调用了我的别名:

alias_name arg0 arg1 arg2

但我在航站楼看到的只是:

>

没有创建文件。

我想知道这是实现此类结果的正确方法,还是应该有一个别名来调用位于系统其他位置的脚本。

笔记:我面临的一个限制是可移植性,我经常通过 ssh 进入其他机器,并且需要在那里运行此命令。这就是为什么我认为别名可能是实现此目的的正确方法,因为我可以简单地 ssh 进入有问题的机器,将 ~./bashrc 的名称更改为 ~/.bashrc_disabled,然后 scp 我的 bashrc (包含这个新别名)到位,运行我的命令,然后将结果文件 scp 回我的机器,删除 .bashrc 并将原始 .bashrc 从 .bashrc_disabled 重命名为 .bashrc

相关内容