我想在我的bashrc里做这样的事
SERVER=abc.com
geta() { scp ${SERVER}:$1 . ;}
SERVER=xyz.com
getx() { scp ${SERVER}:$1 . ;}
declare -f geta getx
geta ()
{
scp ${SERVER}:$1 .
}
getx ()
{
scp ${SERVER}:$1 .
}
我想把geta和getx设置为
geta () { scp abc.com:$1 . }
getx () { scp xyz.com:$1 . }
函数定义中是否有强制变量扩展的方法?
注:为了澄清,我更改了示例
最佳答案
您可以使用eval
(退出$
以便$1
不会被扩展)
SERVER=abc.com
eval "geta() { scp ${SERVER}:\$1 . ;}"
SERVER=xyz.com
eval "getx() { scp ${SERVER}:\$1 . ;}"
declare -f geta getx
的输出geta ()
{
scp abc.com:$1 .
}
getx ()
{
scp xyz.com:$1 .
}