【发布时间】:2021-01-20 08:57:59
【问题描述】:
我有一些别名:
alias a1='ssh -A -t -p 22 user1@10.62.0.20 ssh user2@10.62.0.100'
我有一些 shell 脚本 s1.sh,它获取不同的参数。 这个参数我需要通过变量:$args
args="a1 b2 c3 d4"
cat s1.sh | a1 "sudo su - user3; /bin/sh -s $args"
此代码有效,脚本已执行,但未将参数“/bin/sh -s $args”传递给 s1.sh 脚本。 本例中如何传递“$args”变量?
【问题讨论】:
-
cat 将简单地打印脚本文件中的命令并在远程机器上执行它们,它将无法解释参数。您需要将脚本 scp 到远程计算机,然后执行附加参数,
-
@barmaley :您的别名定义不包含任何可以扩展的内容。因此,
a1 foo bar只是将foo bar附加到别名定义的内容中。 -
你应该使用函数,而不是别名。您也可能不需要,因为您可以简单地在
.ssh配置中指定所有必要的标志和选项。