我希望按如下方式调用别名:
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