为了账号安全,请及时绑定邮箱和手机立即绑定

有大佬遇到过这个问题吗:Bash 怎样获得脚本所在的绝对路径?求解答!

有大佬遇到过这个问题吗:Bash 怎样获得脚本所在的绝对路径?求解答!

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

2 回答

?
慕沐林林

TA贡献2016条经验 获得超9个赞

试试这个吧,Windows上没试过(因为没有)
#!/bin/sh
echo"$(cd"$(dirname"$1")";pwd-P)/$(basename"$1")"
                            
查看完整回答
反对 回复 2019-07-27
?
守着星空守着你

TA贡献1799条经验 获得超8个赞

用realpath也可以:
SCRIPT=`realpath$0`
SCRIPTPATH=`dirname$SCRIPT`
如果不想追踪软连接,可以加-s参数:
SCRIPT=`realpath-s$0`
SCRIPTPATH=`dirname$SCRIPT`
                            
查看完整回答
反对 回复 2019-07-27
  • 2 回答
  • 0 关注
  • 500 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号