我曾经写过一个脚本,可以在Linux中为那些不喜欢命令行的人做一些简单的安装程序,但似乎他们从一个位置(例如root)运行脚本。所以我有一个解决方案,但试图找出如何引用文件的位置。
实施例。 我在一个文件夹/ root / Server / Scripts /中有一个名为Install.sh的脚本,它使用以下内容引用自身:
SCRIPTSDIR=`pwd`
但是我通过执行sh Server / Scripts / Install.sh来解决从root运行此脚本的问题
我如何制作SCRIPTS =引用文件所在位置的东西,而不是它的运行位置?
谢谢,询问您是否需要更多信息!
编辑:所有答案都很好,我打算把我需要的绝对路径。
答案 0 :(得分:5)
你可以用
获得目录dirname $0
如果使用相对路径调用脚本,则dirname也将返回相对路径。如果你想出于某种原因解决它,你可以做
readlink -f `dirname $0`
答案 1 :(得分:1)
您可以使用:
SCRIPTDIR=$(dirname $0)
如果您需要绝对路径,请尝试:
cd $(dirname $0)
SCRIPTDIR=$(pwd)
cd -
答案 2 :(得分:1)
您可以添加以下内容:
fullscriptpath=$( dirname $0 )