C. Ross Asked: 2009-05-14 04:42:50 +0800 CST2009-05-14 04:42:50 +0800 CST 2009-05-14 04:42:50 +0800 CST Shell 脚本文件名格式 772 下面的 shell 脚本是什么意思?这是 ksh,npfile 也是一个包含文件名的变量。 fileName=${npFile##/*/} scripting files shell ksh 2 个回答 Voted Best Answer jj33 2009-05-14T04:54:28+08:002009-05-14T04:54:28+08:00 它从文件的路径中剥离了基础。在变量扩展中,## 的意思是“把它放在我右边,把它当作一个模式,并在我左边的变量中删除它最长的匹配项”。 在这种情况下,模式是 /*/,因此包含路径和文件名的变量中最长的匹配将是路径。删除它只会留下文件名。 它似乎是一种仅变量扩展的写法: filename=`basename $npFile` Brent 2009-05-14T04:56:18+08:002009-05-14T04:56:18+08:00 从字符串的开头修剪“/*/”(从第一个斜杠到最后一个斜杠的所有内容)。 所以如果 npFile="/path/to/file" -fineName 会变成 "file"
它从文件的路径中剥离了基础。在变量扩展中,## 的意思是“把它放在我右边,把它当作一个模式,并在我左边的变量中删除它最长的匹配项”。
在这种情况下,模式是 /*/,因此包含路径和文件名的变量中最长的匹配将是路径。删除它只会留下文件名。
它似乎是一种仅变量扩展的写法:
从字符串的开头修剪“/*/”(从第一个斜杠到最后一个斜杠的所有内容)。
所以如果 npFile="/path/to/file" -fineName 会变成 "file"