2013-10-06 18 views
2

您好新来unix和bash编程。我正在尝试制作一个简单的启动脚本,让我的boxee启动存储在存储卡上的XBMC。我可以通过在telnet中输入命令来启动命令,但是如果我调用test.sh脚本,它不会允许我访问存储XBMC的目录。试图从BOXEE启动XBMC bash

#!/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”,它会将我带到目录 但如果我把该代码放在脚本中,它会给我访问被拒绝。

我在这里做错了什么。或者我该如何解决这个问题,所以我不必改变我的工作目录?

+0

线2那是什么第一线? (以'#!'开头)?它应该是“bash”或“sh”的路径吧? – Geoff

回答

2

2号线将扩大到

BASEDIR=/tmp/mnt/6337-3533/xbmc test.sh 

这将尝试与/ tmp目录的/ mnt/6337-3533/XBMC第1行指定的解释,因为这将失败运行test.sh是一个目录。 1号线不指定如果你打算做“上海test.sh”来运行该脚本的有效解释,但你可能会更快乐,如果你改变1号线

#!/bin/sh 

如果你只是想xbmc.bin的调用看到它的环境BASEDIR值,替换

BASEDIR=/tmp/mnt/6337-3533/xbmc 
export BASEDIR