linux shell 问题?怎么知道shell脚本自己的路径

2024-12-28 07:06:22
推荐回答(5个)
回答1:

用dirname命令和pwd命令(或读取PWD变量)组合。先进入脚本所在目录,读出PWD值(这就是需要的东西),然后返回原来的位置[可选]。命令如下:
echo $(cd "$(dirname "$0")"; pwd)
这里的cd是在子shell中执行,所以不需要用额外的命令返回原位置了。

回答2:

你可以在cd之前就保持pwd返回的值就可以了

1 #!/bin/bash
2 path=`pwd`
3 cd ..
4 echo "sript path = $path"

第2行哪个不是单引号,看清楚哦

回答3:

我来说说:
在Linux中,脚本的执行有3种方式
1.bash jiaoben.sh这种方式是不需要可执行属性的,因为bash是一个命令,而后面的文件名就是它的参数,它在当前Shell中启动一个子Shell来运行脚本程序。
2.“.” jiaoben.sh这种方式是在当前Shell中执行脚本程序,同样“.”是一个命令,文件名是它的参数,不需要可执行属性。
3.直接通过文件名执行脚本程序,这时需要设置可执行属性,./jiaoben.sh就表示在当前目录执行jiaoben.sh
希望能帮助你。。。

回答4:

BASH SHELL有一个环境变量,专门记录脚本位置的。
$0
$系列还有很多的系统变量。
#!/bin/bash
echo $0

希望能帮助您。

回答5:

这个肯定是你需要的:
# ==========================Shell路径设置START==========================
# Shell路径获取与变量设置
ShSubPath=$( echo $0 | sed 's/'"$( basename $0 )"'//' )
# 进入脚本存放路径
if [ -n "${ShSubPath}" ]; then
cd "${ShSubPath}"
else
echo "已经在Sh路径了!"
fi
# 获取shell绝对路径
export ShPath="$( pwd )"
# ==========================Shell路径设置 END===========================