如何与目录名称进行比较并输入最高版本

  • 本文关键字:高版本 版本 比较 bash
  • 更新时间 :
  • 英文 :


我在同一个子目录中有两个版本的tcpdump。

tcpdump-4.1.1

和 tcpdump-4.3.0

如何编写 bash 函数以返回最高版本?

编辑:

我现在让它工作了。这是代码。

#!/bin/bash
# Function to get the latest version of the directory
function getLatestDirVer {
    latestDIR=$(ls -v $1* | tail -n 1)
    stringLen=`expr length "$latestDIR"`
    stringLen=$(($stringLen-1))
    latestDIR2=`expr substr $latestDIR 1 $stringLen`
    echo $latestDIR2
}
# Main function
echo $(getLatestDirVer tcpdump)

这是奥普图特

[luke@machine Desktop]$ ./latestDIRversion.sh 
tcpdump-4.3.0
tcpdump-4.1.1

和 tcpdump-4.3.0 目录位于桌面目录中。

这是使用 ls 的一种方法。您可以使用 -v 标志按文件名从低到高的版本号进行排序:

ls -v tcpdump* | tail -n 1

编辑:

所以事实证明,我完全误读了你的问题。我以为你对文件名感兴趣,但实际上你对目录感兴趣。您可以将以下内容添加到您的~/.bashrc中,我认为它会对您有用:

getLatestDirVer () {
    for i in $(find ./* -type d | sort --version-sort); do :;done
    cd "$i"
}
ls -1 tcpdump*|sort -rn|head -1

相关内容

  • 没有找到相关文章

最新更新