我是shell脚本编程新手。我正在努力解决这个问题。从shell脚本调用脚本 - 找不到命令
> script to execute in cron (util.sh)
#!/bin/sh
HOST='ahostname'
PORT='3306'
USER='auser'
PASS='apassword'
DB='adatabase'
. /mnt/stor/backups/backup.sh
(我也试过源/mnt/stor/backups/backup.sh)
> script to execute (backup.sh)
当backup.sh是所谓的(它被调用),这似乎只是被解析,而不是执行。所以,不管是什么,我把它,我得到这样的消息:
/mnt/stor/backups/backup.sh: line 8: date: command not found
/mnt/stor/backups/backup.sh: line 8: mysqldump: command not found
/mnt/stor/backups/backup.sh: line 8: tar: command not found
/mnt/stor/backups/backup.sh: line 8: rm: command not found
的想法是有一个域名本地化的文件,使用变量执行它,并调用使用变量做肮脏的工作主脚本。由于我的主机和多个域的限制,这是最好的方法。
2012-01-25
chrisrth
+1
最有可能的子shell有很多不同的路径比母贝。尝试为命令添加绝对路径,例如'/ bin/rm','/ bin/tar'等...... –
+0
看起来像'PATH'没有正确设置cron的命令。如果是这样的情况下,使用绝对路径到你的命令(日期,焦油等)或设置在backup.sh一个'PATH'可能的帮助。 –
+0
为什么标记为* perl *? –