求这个获取脚本路径的实现解释

insulted 2013-04-08 10:47:58

#!/bin/bash
curPwd=${0%/*}

if [ "1" -eq "`echo "$0" | grep -c '^\.'`" ]
then
curPwd=`pwd`${0#\.}
curPwd=${curPwd%/*}
fi


1)${0%/*}这个是什么意思?
2)${0#\.}这个是什么意思?
3)${curPwd%/*}这个是什么意思?
...全文
93 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicenight 2013-04-08
  • 打赏
  • 举报
回复
首先知道 $0 是表示脚本名字。 然后 curPwd 是脚本里面处理过的变量,内容是:脚本名字加上全径。 剩下的是变量处理,你可以搜索“变量截取”找相关的教材,下面是复制的一个简单说明:
一 # 号截取,删除左边字符,保留右边字符。
echo ${var#*//}
其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符
 
二 ## 号截取,删除左边字符,保留右边字符。
echo ${var##*/}
##*/ 表示从左边开始删除最后(最右边)一个 / 号及左边的所有字符

三 %号截取,删除右边字符,保留左边字符
echo ${var%/*}
%/* 表示从右边开始,删除第一个 / 号及右边的字符

四 %% 号截取,删除右边字符,保留左边字符
echo ${var%%/*}
%%/* 表示从右边开始,删除最后(最左边)一个 / 号及右边的字符

五 从左边第几个字符开始,及字符的个数
echo ${var:0:5}
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。

六 从左边第几个字符开始,一直到结束。
echo ${var:7}
其中的 7 表示左边第8个字符开始,一直到结束。

七 从右边第几个字符开始,及字符的个数
echo ${var:0-7:3}
其中的 0-7 表示右边算起第七个字符开始,3 表示字符的个数。

八 从右边第几个字符开始,一直到结束。
echo ${var:0-7}
表示从右边第七个字符开始,一直到结束。
insulted 2013-04-08
  • 打赏
  • 举报
回复
引用 1 楼 nicenight 的回复:
首先知道 $0 是表示脚本名字。 然后 curPwd 是脚本里面处理过的变量,内容是:脚本名字加上全径。 剩下的是变量处理,你可以搜索“变量截取”找相关的教材,下面是复制的一个简单说明: C# code ? 12345678910111213141516171819202122232425262728293031 一 # 号截取,删除左边字符,保留右边字……
答复很及时,谢谢,结贴给分!

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧