shell 脚本执行的有关问题和crontab的有关问题
shell 脚本执行的问题和crontab的问题
大家好,我在本地写了两个sh文件,test1.sh, test2.sh, test1.sh 会用 ./test2.sh 的方式调用执行,在当前目录下没有问题,我用长路径执行,如果 /home/test/test1.sh 就会提示找不到test2.sh. 这个有什么好的办法解决。
另外一个问题,其实和上面的问题有点相关,我想执行在crontab里面定时执行 test1.sh,也会提示报错。应该也是类似的问题。
不一样的地方还有一个,就是我在test1.sh里面会load 一个配置文件,这个也是当前目录的。有啥好办法。谢谢!
------解决思路----------------------
at the begining of test1.sh, put the following:
PATH=~
As for cronjob
either use absolute path for your command or put the following at the beginning of crontab file
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/test
------解决思路----------------------
你在 test1.sh中调用test2.sh要注意路径,
另外如果你把test2.sh所在路径加到PATH(或者把test2.sh放到/usr/local/bin路径下也可以),那么无论在哪个目录你都可以执行它,就好象执行ls等系统命令一样。
------解决思路----------------------
最简单的方法就是全部使用完整路径
如果想高端一点,可以在 test1.sh 里面获取脚本自身所在的路径,然后 cd 过去再执行 test2.sh,参考:
http://bbs.chinaunix.net/thread-4101120-1-1.html
http://bbs.chinaunix.net/thread-1590414-1-1.html
------解决思路----------------------
test1中获得test2的全路径
大家好,我在本地写了两个sh文件,test1.sh, test2.sh, test1.sh 会用 ./test2.sh 的方式调用执行,在当前目录下没有问题,我用长路径执行,如果 /home/test/test1.sh 就会提示找不到test2.sh. 这个有什么好的办法解决。
另外一个问题,其实和上面的问题有点相关,我想执行在crontab里面定时执行 test1.sh,也会提示报错。应该也是类似的问题。
不一样的地方还有一个,就是我在test1.sh里面会load 一个配置文件,这个也是当前目录的。有啥好办法。谢谢!
------解决思路----------------------
at the begining of test1.sh, put the following:
PATH=~
As for cronjob
either use absolute path for your command or put the following at the beginning of crontab file
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/home/test
------解决思路----------------------
你在 test1.sh中调用test2.sh要注意路径,
另外如果你把test2.sh所在路径加到PATH(或者把test2.sh放到/usr/local/bin路径下也可以),那么无论在哪个目录你都可以执行它,就好象执行ls等系统命令一样。
------解决思路----------------------
最简单的方法就是全部使用完整路径
如果想高端一点,可以在 test1.sh 里面获取脚本自身所在的路径,然后 cd 过去再执行 test2.sh,参考:
http://bbs.chinaunix.net/thread-4101120-1-1.html
http://bbs.chinaunix.net/thread-1590414-1-1.html
------解决思路----------------------
test1中获得test2的全路径