我正在写一个Bash脚本。我需要当前工作目录始终是脚本所在的目录。
默认行为是脚本中的当前工作目录是我从中运行它的shell的目录,但我不想要这种行为。
我正在写一个Bash脚本。我需要当前工作目录始终是脚本所在的目录。
默认行为是脚本中的当前工作目录是我从中运行它的shell的目录,但我不想要这种行为。
当前回答
cd "$(dirname "${BASH_SOURCE[0]}")"
很容易。它的工作原理。
其他回答
#!/bin/bash
cd "$(dirname "$0")"
cd "$(dirname "${BASH_SOURCE[0]}")"
很容易。它的工作原理。
echo $PWD
PWD是一个环境变量。
以下也适用:
cd "${0%/*}"
语法在这个StackOverflow的答案中有详细的描述。
cd "`dirname $(readlink -f ${0})`"