您好,unix和bash编程新手。我正在尝试创建一个简单的启动脚本,让boxee启动存储在存储卡上的XBMC。我可以通过在telnet中输入命令来启动它们,但是如果我调用test.sh脚本,它将不允许我访问存储XBMC的目录。
#!/tmp/mnt/6337-3533/xbmc
BASEDIR=/tmp/mnt/6337-3533/xbmc $0
killall U99boxee; killall BoxeeLauncher; killall run_boxee.sh; killall Boxee; killall BoxeeHal
GCONV_PATH=$PWD/gconv AE_ENGINE=active PYTHONPATH=$PWD/python2.7:$PWD/python2.7/lib-dynload XBMC_HOME=$PWD ./xbmc.bin -p提供:
# sh test.sh
: not foundne 2:
: not foundne 3:
test.sh: line 4: /tmp/mnt/6337-3533/xbmc: Permission denied
: not foundne 5:
: not foundne 6:
killall: U99boxee: no process killed
killall: BoxeeLauncher: no process killed
killall: run_boxee.sh: no process killed
killall: Boxee: no process killed
: no process killed
: not foundne 9:
: not foundne 10:
test.sh: line 11: ./xbmc.bin: not found
#我在xbmc中使用了命令行。我假设$PWD期望脚本位于/tmp/mnt/6337-3533/xbmc中
如果我在telnet中输入"cd /tmp/mnt/6337-3533/xbmc“,它会将我带到该目录,但如果我将该代码放入脚本中,它将显示访问被拒绝。
我到底做错了什么。或者,我如何才能做到这一点,这样我就不必改变我的工作目录了?
发布于 2013-11-08 03:21:28
第2行将扩展为
BASEDIR=/tmp/mnt/6337-3533/xbmc test.sh这将尝试使用在第1行指定的/tmp/mnt/6337-3533/xbmc解释器运行test.sh,这将失败,因为这是一个目录。如果要通过执行'sh test.sh‘来运行脚本,那么第1行不必指定有效的解释器,但是如果将第1行改为
#!/bin/sh如果您只想让xbmc.bin的调用在其环境中看到BASEDIR值,请将第2行替换为
BASEDIR=/tmp/mnt/6337-3533/xbmc
export BASEDIRhttps://stackoverflow.com/questions/19213432
复制相似问题