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

Ubuntu新手求助:Shell脚本中变量作为邮件主题不生效的问题

Ubuntu新手求助:Shell脚本中变量作为邮件主题不生效的问题

嗨,别着急,你的问题其实是Shell脚本里引号的使用规则搞的鬼😉

你看,在Shell中,单引号(')包裹的内容会被当作纯字符串,不管里面是变量还是特殊字符,都会原封不动地输出。所以你用-F subject='$subject'的时候,curl收到的主题就是字面意义的$subject,而不是你定义的SSH Login:。

解决方法很简单,把包裹$subject的单引号换成双引号(")就行,双引号会自动解析里面的变量:

#!/bin/bash

##This script sends a message

subject="SSH Login:"

curl -s --user 'api:key-xxxxxxxxxxxxxxx' https://api.eu.mailgun.net/v3/adoptatias.com/messages -F from='Excited User <postmaster@mydomain.com>' -F to='mymail@gmail.com' -F subject="$subject" -F text='Detected succesfull SSH login'

exit 0;

这里我只把-F subject='$subject'改成了-F subject="$subject",这样Shell就会把$subject替换成你定义的SSH Login:啦。

额外给你提个小知识点:如果你的变量里包含空格、特殊字符(比如!、@之类的),用双引号包裹也能保证变量被正确解析,不会被Shell拆分成多个参数哦。

备注:内容来源于stack exchange,提问作者gabogabans

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 13:29:07