bash脚本中传递命令行参数

发布时间:2026/7/17 17:07:53
bash脚本中传递命令行参数 ----------------------------------------------author: hjjdebugdate: 2023年 08月 06日 星期日 15:24:39 CSTdescriptor: bash脚本中传递命令行参数----------------------------------------------原来bash 获取命令行选项是如此的简单, 只用一个for 后面随便一个参数就是命令行参数.不相信? 看看下面代码:$ cat 1.sh #!/bin/bash for haha do echo $haha done 测试结果: $ ./1.sh --helpshort abcde 12345 --helpshort abcde 12345我是从阅读configure 文件中得到这个知识的, 想看看它到底怎样传递的命令行参数,原来如此之简单.我贴上一段configure 简化后的代码吧,真正的configure 文件比它复杂百倍,千倍,但被这些干货挡着确实难看懂!#! /bin/bash for params do case $params in *?*) ac_optargexpr X$params : [^]*\(.*\) ;; // 提取选项值用 expr 命令 *) ac_optarg ;; *) ac_optargyes ;; esac case $params in -help | --help | --hel | --he | -h) ac_init_helplong ;; -helpr* | --helpr* | --helr* | --her* | -hr*) ac_init_helprecursive ;; -helps* | --helps* | --hels* | --hes* | -hs*) // 直接用*号来匹配任意字符 ac_init_helpshort echo help is short ;; esac done当然,至于说$1,$2,$3...代表第1,第2,第3参数,这个我是知道的, 但对于随便一个变量代表所有命令行参数,用匹配的方法得到所需要的参数,还是在configure 文件中第一次看到.