别名参数不起作用



我试图使使用SCP变得易于使用,因此我今天了解了别名,我正在使用它:

alias loudie-scp="scp -i keys/aws.pem $1 ec2-user@ec2-107-20-68-112.compute-1.amazonaws.com:/home/ec2-user"

$ 1在那里指定我要传输的文件。但是,这是不起作用的,并给我一个错误:

scp: /home/ec2-user: not a regular file

当我以$ 1的价格手动执行此命令时,这不会发生。

bash FAQ输入#80:"我如何制作一个有参数的别名?"

不幸的是,bash别名有点像发现和重复位置 - 它们在您描述的任务中并不是很强大。我建议使用脚本文件并将其放置在可执行目录中;类似的东西:

#!/bin/bash
scp -i keys/aws.pem $1 ec2-user@ec2-107-20-68-112.compute-1.amazonaws.com:/home/ec2-user

然后,鉴于它具有名称loudie-scp,您可以这样称呼它:

loudie-scp <parameter>

,因为我确定Ignacio的链接会解释,别名无非是在文本上将别名扩展到其价值。它不需要参数,您需要为此使用函数。

最新更新