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

Bash脚本预定义变量通过SSH执行命令时无法展开的问题

问题分析与解决

核心原因

问题出在单引号的变量解析特性:第三行用单引号包裹SSH命令时,本地的$CLIP变量不会被Shell解析,远程服务器会尝试读取自身环境中的$CLIP(该变量为空),所以最终文件内容为空。

两种解决办法

  • 方法一:将单引号改为双引号,让本地Shell先解析变量再传递给远程
    #!/bin/bash
    CLIP=$(termux-clipboard-get)
    ssh user@ip "cat>~/Scripts/clip.log<<<$CLIP"
    
  • 方法二:通过管道直接传递内容,避免变量解析问题(更简洁)
    #!/bin/bash
    termux-clipboard-get | ssh user@ip 'cat>~/Scripts/clip.log'
    

验证要点

  • 执行echo $CLIP能正常输出内容,说明本地变量获取没有问题。
  • 替换为固定字符串能正常写入,说明远程SSH连接和文件写入逻辑是正常的,问题仅在于变量解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 08:13:23