您好,刚刚接触 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”,它会将我带到目录 但如果我将该代码放入脚本中,它将使我的访问被拒绝。
我在这里做错了什么。或者我该如何解决这个问题,这样我就不必更改我的工作目录?
最佳答案
第 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 BASEDIR
关于bash - 尝试使用 BOXEE 中的 bash 启动 XBMC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19213432/