使用相对路径从另一个脚本调用一个shell脚本
我有这样的脚本:
#!/bin/csh
echo "This is the main programme"
./printsth
我想从这个脚本中使用相对路径调用脚本printsth
。 有没有办法做到这一点? 相对路径我的意思是相对于我的调用脚本的路径。
您可以使用$cwd
引用当前的工作目录。 所以如果你想用相对于当前工作目录的路径调用printsth
,用$cwd
开始行。
例如,如果您想在当前目录中调用printsth
,请说:
$cwd/printsth
如果你想打电话给上面的printsth
一个目录:
$cwd/../printsth
确保它是一个csh
脚本(即第一行是#!/bin/csh
)。 如果它是sh
或bash
脚本,则需要使用$PWD
(用于'当前工作目录'),而不是$cwd
。
编辑:
如果你想要一个与脚本目录相关的目录,而不是当前的工作目录,那么你可以这样做:
setenv SCRIPTDIR `dirname $0`
$SCRIPTDIR/printsth
这会将$SCRIPTDIR
设置为与原始脚本相同的目录。 然后你可以建立相关的路径。
将脚本作为./printsth
运行将不会始终工作,因为相对路径取决于运行主脚本的目录。
一种解决方案是确保我们进入脚本所在的目录,然后运行它:
cd -P -- "$(dirname -- "$0")"
./printsth
有关更多示例,请参阅:如何将当前工作目录设置为脚本的目录?
另请参阅:如何将绝对路径转换为相对路径?
链接地址: http://www.djcxy.com/p/56781.html上一篇: Call one shell script from another script using relative paths