目前题主采用的方法如下(绝对路径,排除所有软链接):
#!/bin/bash
SCRIPT_PATH=`cd "$(dirname "$0")"; pwd -P`
echo ${SCRIPT_PATH}
cd ${SCRIPT_PATH}
这个方法存在下列问题:
- 路径不能包含非 ASKII 字符(例如:中文)
- 路径不能包含 Bash 特殊字符(例如:$、\)
- 路径不能包含空白(例如:空格、制表符)
请提供一种方法避免上述问题。
测试方法:
- 将修改下列脚本,然后放到这里:
你的路径/中文 English $/中文 English $.sh
。执行不报错。 - 最好能在 Windows(Windows Subsystem for Linux)、macOS 和 Linux 上均做测试。
#!/bin/bash
# 修改此处
#
# SCRIPT_PATH=
echo ${SCRIPT_PATH}
cd ${SCRIPT_PATH}
PS: 用cd ${SCRIPT_PATH}
进行测试的原因是,确保${SCRIPT_PATH}
可以安全地用作任意命令和脚本的参数。
试试这个吧,Windows上没试过(因为没有)