我想运行一个复制文件的 shell 脚本。我不喜欢对该文件进行绝对引用。
myproject/target/myapp.jar
myproject/docs/copy.sh
copy.sh 包含:
scp ~/Projects/myproject/target/myapp.jar user@myip:/var/www
问题:我如何运行copy.sh
shell 脚本并引用myapp.jar
相对项?比如先浏览一个文件夹,然后进入/target
?
答案1
您希望从myproject/docs/copy.sh
2 个目录向上并进入目标。您可以使用 ... 来执行此操作
../../target/myapp.jar
这虽然……
scp ~/Projects/myproject/target/myapp.jar user@myip:/var/www
我会使用一个变量,并在脚本开头或从配置中设置它。scp
当其上方有“项目”时,您不能在里面使用 ../../。
这将为您提供脚本所在的目录:
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"