首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 操作系统 > UNIXLINUX >

SHELL命令,该怎么解决

2012-04-11 
SHELL命令各位达人,shldir${0%/*}的${0%/*}的表示什么意思?请赐教。[解决办法]蛮有趣的,查了一下,含义类似

SHELL命令
各位达人,
shldir=${0%/*}
的${0%/*}的表示什么意思?
请赐教。

[解决办法]
蛮有趣的,查了一下,含义类似于将$0(如果在某个脚本中直接调用上面的语句的话也即argv[0])中和/*(表示以/开始,后面可有任意个字符)匹配的最短部分删除,然后将处理后的值赋值给shldir,实际的含义则类似于获得调用脚本的路径。
例子:如在/root/下有一个脚本名称是test,里面有shldir=${0%/*},会有以下的情况:
进入/root/目录下,./test则shldir的值为. 因为/test匹配/*,因此被去除
直接调用/root/test,则shldir的值为 /root 因为/test是最短匹配/*的,因此被去除

对应的帮助可以info bash,然后跳到Shell Parameter Expansion的node,里面有说明。如果把%换成%%则是删除最长匹配部分,自己可以看看有什么差异。

热点排行