下面的shell脚本是什么意思?这是ksh,npfile也是一个包含文件名的变量。
fileName=${npFile##/*/}
答案1
它会从文件路径中删除基数。在变量扩展中,## 表示“取出我右边的内容,将其视为模式,并删除我左边变量中最长的匹配项。”
在本例中,模式是 /*/,因此包含路径和文件名的变量中最长的匹配项就是路径。删除它将只留下文件名。
这似乎是一种仅使用变量扩展的编写方式:
filename=`basename $npFile`
答案2
这会从字符串的开头修剪“/*/”(从第一个斜杠到最后一个斜杠的所有内容)。
因此,如果 npFile="/path/to/file" - fineName 将变成“file”