You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过SSH传递参数给远程Bash别名/函数

SSH远程执行bash函数参数无法传递的解决办法

你的问题出在bash -ic的参数解析逻辑上:当你执行bash -ic run_it 100时,100会被当作bash进程的位置参数(即$0),而非run_it函数的参数。因为-c选项要求后面紧跟完整的命令字符串,后续参数不会被传递给命令里的函数。

正确的执行方式

  • 直接将函数调用与参数包裹为一个字符串传给-c:
ssh -t <remote-host> bash -ic 'run_it 100'

这样bash会把整个run_it 100当作要执行的命令,100就能正确被run_it函数接收。

  • 如果需要传递本地动态参数,可使用双引号让本地shell解析变量后再传递:
local_num=100
ssh -t <remote-host> bash -ic "run_it $local_num"

若参数包含空格、特殊字符,建议用单引号包裹参数或者转义,避免本地shell错误解析。

原命令失效的原因

bash -ic run_it 100中,run_it是-c的命令字符串,100会被设置为bash的$0(交互式shell的默认$0是bash),而run_it函数并没有接收到任何参数,所以$1为空,导致你看不到预期的Hello 100输出。

内容的提问来源于stack exchange,提问作者sureshvv

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 20:58:09