我希望能够通过向我的路由器(已安装openwrt)发送短信来下载文件,并使用关键字下载http://sites.com/file.exe 我可以这样做吗?
if [ "$MESSAGE" = "download http*" ]; then
aria2c httpxxxx
fi
我也希望能够将我的短信上的下载链接传递给aria2c,我该怎么做?我在我的路由器上使用此sms gateway我很抱歉我不是电脑用户,所以我对此类内容不太了解
答案 0 :(得分:1)
您可能想要使用regex
。例如:
if [[ "$MESSAGE" =~ "download http" ]]
then
aria2c httpxxxx
fi
根据@dgunchev的建议你也可以使用它,以便" ABCdownload http123"赢了
[[ "$MESSAGE" =~ ^"download http" ]]
答案 1 :(得分:0)
您只需使用Pattern Matching ==
运算符[[ ]]
Conditional Construct即可完成此操作:
当使用'=='和'!='运算符时,运算符右侧的字符串被视为模式,并根据模式匹配中描述的规则进行匹配
代码:
if [[ "$MESSAGE" == "download http"* ]]; then
aria2c ${MESSAGE/*http/http}
fi
通过这种方式,您可以匹配以download http
开头并后跟任意字符串的消息(包含空值)
如果您需要不区分大小写的解决方案(由您的评论采纳),您可以先将$MESSAGE
转换为小写:
MESSAGE=${MESSAGE,,} #If you need $MESSAGE untouched, just use a new var name