BASH-$ @中包含的选项

时间:2018-06-26 14:38:27

标签: bash unix arguments options

我有一个脚本来处理文件,并且可以接受多个文件参数:

sh remove_engine file1 #single arg

sh remove_engine file1 file2 #multiple file arg

在脚本的顶部,我将它们与$@一起收集,以便循环遍历它们。

问题在于我还将使用选项(以及getopts)...

sh remove_engine -ri file1 file2

...然后$@现在返回

-rvi file1 file2

,其余脚本将-ri作为文件名。

在脚本顶部附近,我还有一个getopts

的while循环
while getopts :rvi opt
do
    case"$opt" in
    v)      verbose="true";;
    i)      interactive="true";;
    r)      recursive="true";;
   [?])     echo "Usage..."
            exit;;
    esac
done

如何解析选项,然后将参数与选项分开?

1 个答案:

答案 0 :(得分:3)

来自var estate =[]; $("#select-estate").change(function() { var singleValues = $("#select-estate").val(); if (estate.includes(singleValues) == false) { estate.push(singleValues); $("span.filter-push-select").append('<label class="active">' + singleValues + '<i class="fa fa-times fa-lg" aria-hidden="true"></i></label>'); console.log(estate); } }); $(".filter-push-select").on('click', 'label', function() { var item = $(this).text(); var iterator = estate.keys(); for (let key of iterator) { console.log(key); // expected output: 0 1 2 } function removeItem(estate, item) { let i = estate.indexOf(item) if (i > -1) { estate.splice(i, 1); } } removeItem(estate, item); $(this).remove(); //estate.splice(index, 1); console.log(estate); });

  

遇到选项结尾时,man bash退出并显示一个   返回值大于零。 getopts设置为索引   第一个非选项参数,并且OPTIND设置为name

因此完整的代码是:

?