while [[ $1 = -* ]]是啥意思

其实没有那么复杂,while ]; do 意思是参数1等于-a的时候进入循环
while ]; do 意思是只要参数等于以-开头的字符串即可
shift即将参数顺序向前移动,第二个参数变为第一个参数
最终ACTION的值是第一个不是以-开头的字符串

■网友
]# 这是一个字符串判断语句,和下面这个等价]# 都属于 pattern matching 类型的 【while [[ $1 = -* ]]是啥意思】 平常我们看到的判断语句类似这样,它用一个中括号。大概可以理解为这是一种的比较语法
if ; then echo "hello world"fiif ; then echo "yes"fi更详细的参考:http://mywiki.wooledge.org/BashFAQ/031

■网友
不太懂Shell编程,猜测是遍历命令行的所有参数,如果发现 -d 参数,就设置变量DEBUG=1。估计后面还有代码检查DEBUG变量,如果是1则输出调试信息吧。
维护这种晦涩难懂的东西太累,还是换python吧。

■网友
匹配-开头的参数,然后取参数的值。不过我觉得用getopt或getopts命令获取参数更好一些。


    推荐阅读