别名参数不起作用

时间:2012-12-20 05:54:40

标签: bash ssh

我正在尝试使用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的任何文件时,不会发生这种情况。

3 个答案:

答案 0 :(得分:4)

答案 1 :(得分:0)

不幸的是,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>

答案 2 :(得分:0)

我确信Ignacio的链接会解释,别名只会以文本方式将别名扩展为其值。它不需要参数,你需要使用一个函数。