Bash 脚本添加变量到别名

Bash script add variable to alias

我正在尝试 运行 这个脚本 -

#!/bin/bash

my_opts="-2 -o StrictHostKeyChecking=no -o FallBackToRsh=no -q -i /root/.ssh/identity"
alias ssh='ssh $my_opts'

type ssh

它给我的输出是 ssh is /usr/bin/ssh。需要更改什么以便输出为 - ssh -2 -o 'StrictHostKeyChecking no' -o 'FallBackToRsh no' -i /root/.ssh/identity

提前致谢。

通过使用 ' 您正在创建一个文字字符串,在许多语言中也将字符串称为文字 - bash 也不例外。或者称为字符串插值。您需要使用 " 才能通过字符串传递 var,除非您像这样用 ' 包围栏

alias install='install '$var''

参考 https://www.gnu.org/software/bash/manual/html_node/Single-Quotes.html

还要确保您使用的是 source,例如source ./script.sh 在您的脚本上而不是 运行 在键入命令时使用 bash ./script.sh

忘记别名,定义一个函数。

ssh () {
    command ssh -2 -o StrictHostKeyChecking=no -o FallBackToRsh=no -q -i /root/.ssh/identity "$@"
}