使用完整路径运行bash脚本

时间:2017-10-20 16:03:04

标签: linux bash

有人可以解释一下为什么我的脚本无法从创建它的其他目录运行吗? 我的脚本 start.sh 在目录 / root / etlegacy / 中:

#!/bin/bash
/usr/bin/screen -d -m -S etserver /root/etlegacy/etlded

当我在/ root / etlegacy /并运行脚本时,一切正常:

./start.sh

但是当我在文件系统的其他地方时,它无法正常工作,即使我使用完整的路径来编写脚本,即

/root/etlegacy/start.sh

2 个答案:

答案 0 :(得分:1)

您编写脚本时没有问题。问题更可能出现在/root/etlegacy/etlded中,可能需要运行到/root/etlegacy目录中。尝试将代码更改为:

#!/bin/bash
pushd /root/etlegacy
/usr/bin/screen -d -m -S etserver /root/etlegacy/etlded
popd

答案 1 :(得分:0)

  

当我在class DetailViewController: UISomeViewController { weak var delegate: FilterViewControllerDelegate } [...]并运行脚本时,一切正常:/root/etlegacy/etlded

...

  

但是当我[...]使用完整路径编写脚本./start.sh

时,它无效

嗯,那是你的问题。听起来你的脚本的完整路径实际上是:

/root/etlegacy/start.sh