Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有人能解释一下这个bashshell脚本吗?_Bash_Shell - Fatal编程技术网

有人能解释一下这个bashshell脚本吗?

有人能解释一下这个bashshell脚本吗?,bash,shell,Bash,Shell,有人能解释一下这个while循环是做什么的吗?这些变量意味着什么?移位在这里意味着什么?这段代码分析传递给脚本的参数,并设置一些变量。参数包含在变量中,如$1$2等 使用循环扫描所有参数。在循环内,通过case命令只检查$1,然后shift命令移动参数,删除第一个$1。换班后,前一个$1将丢失,新的$1包含前一个$2包含的内容 请注意,某些参数,如-E,必须后跟另一个参数;在这种情况下,如果检测到-E为$1,则还将使用$2,并执行一次以上的移位 通过在循环结束时添加一个移位,并删除每个案例中指定

有人能解释一下这个while循环是做什么的吗?这些变量意味着什么?移位在这里意味着什么?

这段代码分析传递给脚本的参数,并设置一些变量。参数包含在变量中,如$1$2等

使用循环扫描所有参数。在循环内,通过case命令只检查$1,然后shift命令移动参数,删除第一个$1。换班后,前一个$1将丢失,新的$1包含前一个$2包含的内容

请注意,某些参数,如-E,必须后跟另一个参数;在这种情况下,如果检测到-E为$1,则还将使用$2,并执行一次以上的移位


通过在循环结束时添加一个移位,并删除每个案例中指定的许多移位,这个片段可能会更简洁。

在调试模式下执行脚本。 示例:./bash-x NameOFScript.sh或。/bash-x NameOFScript.sh参数

代码剪报显示了循环、CASE语句的用法


格式化你的代码。我建议在这里阅读ABS指南:它一个接一个地读取传递给脚本的参数,并分配相应的变量。转移就是转移论点的位置:这些变量意味着什么——我们需要知道上下文才能知道。你到底不明白什么?看起来很陈腐。但我们得到了错误-请创建完整的、自包含的、解释良好的问题。如果您有错误,请创建另一个关于该错误的完整问题。您询问了关于指定代码片段的解释-您得到的两个答案是关于该代码片段的。有人能解释一下这段代码是什么吗?df-k-在大多数普通情况下就足够了。SHIFT内置链接
'while [ "$1" != "" ]
   do
    case "$1" in
            -a) AUTO=1; shift;;
            -A) AUTO=1; AUTOIGNORE=1; shift;;
            -E) EXCLUDE=$2; shift 2;;
            -o) NOAUTOIGNORE=1; shift;;
            --help) print_help; exit $STATE_OK;;
            -h) print_help; exit $STATE_OK;;
            -m) MTAB=$2; shift 2;;
            -f) FSTAB=$2; shift 2;;
            -N) FSF=$2; shift 2;;
            -M) MF=$2; shift 2;;
            -O) OF=$2; shift 2;;
            -T) TIME_TILL_STALE=$2; shift 2;;
            -i) IGNOREFSTAB=1; shift;;
            -w) WRITETEST=1; shift;;
            -L) LINKOK=1; shift;;
            -e) DFARGS=$2; shift 2;; 
            /*) MPS="${MPS} $1"; shift;;
            *) usage; exit $STATE_UNKNOWN;;
    esac'