脚本在shell中工作,但不能通过GUI dd-wrt路由器工作

时间:2013-11-16 15:55:43

标签: shell dd-wrt

当我进入dd-wrt路由器并发出命令时,我有以下脚本运行良好

/opt/bin/curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "username@gmail.com" --mail-rcpt "username@gmail.com" --upload-file /mnt/mail.txt --user "username@gmail.com:password" --insecure

但是当我通过GUI发出相同的命令时;管理/命令然后相同的脚本不起作用。

任何有效的解决方案都会给你很大的帮助,谢谢

1 个答案:

答案 0 :(得分:2)

登录计算机并键入命令:

which sh

将此值作为第一行,在其前面加上#!字符,如

#!/bin/sh

你的shell版本是什么?通过ssh连接到路由器后仔细查看第一行。它类似于:

BusyBox v1.15.3 (2011-11-24 00:44:20 CET) built-in shell (ash)
Enter 'help' for a list of built-in commands.

您可能需要记录命令的输出以进行调试:

#!/bin/sh
/opt/bin/curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "username@gmail.com" --mail-rcpt "username@gmail.com" --upload-file /mnt/mail.txt --user "username@gmail.com:password" --insecure 2>&1 | logger -t $0

它将使用syslog工具记录输出。如果它发生了您没有安装syslog,您可以将输出记录到文件:

#!/bin/sh
/opt/bin/curl --url "smtps://smtp.gmail.com:465" --ssl-reqd --mail-from "username@gmail.com" --mail-rcpt "username@gmail.com" --upload-file /mnt/mail.txt --user "username@gmail.com:password" --insecure >> /tmp/mylogfile 2>&1

此外,请确保脚本具有可执行属性集:

chmod a+rx /path/to/your/script