bash - 如何通过参数化的bash脚本迭代列表/数组

时间:2016-09-06 04:04:00

标签: bash shell getopts

我有一个bash脚本,我传递了以下参数(使用getopts),如下所示:

 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Log.e(TAG, "onActivityResult HomeActivity");
    // notifying nested fragments (support library bug fix)

    final List<Fragment> nestedFragments = getSupportFragmentManager().getFragments();
    for (int i = 0; i < nestedFragments.size(); i++)
        if (nestedFragments == null || nestedFragments.size() == 0) return;

    for (Fragment childFragment : nestedFragments) {
        if (childFragment != null && !childFragment.isDetached() && !childFragment.isRemoving()) {
            Log.e(TAG, "childFragment :" + childFragment.toString());
            //   Log.e(TAG, "childFragment :"+childFragment.getParentFragment().getTag());

            if (state.equalsIgnoreCase("AddBalance")) {
                if (childFragment.toString().contains("AddBalanceFragment")) {
                    childFragment.onActivityResult(requestCode, resultCode, data);
                }
            }
            if (state.equalsIgnoreCase("AddSubcription")) {
                if (childFragment.toString().contains("AddSubscriptionFragment")) {
                    childFragment.onActivityResult(requestCode, resultCode, data);
                }
            }


        }
    }


}

然而,执行工作正常,我需要改变这一点,其中./test.sh -o c03 -d mydb -t tblA -n c13 -r us-east-1 (对于表)需要是表-t的列表。

因此,在一次运行中,我试图生成以下内容:

(tblA, tblB, tblC)

我该怎么做?

2 个答案:

答案 0 :(得分:1)

试试这个for循环:

for i in A B C; do
    ./test.sh -o c03 -d mydb -t tbl"$i" c13 -r us-east-1
done

答案 1 :(得分:1)

如何利用bash并使用变量范围?如果你必须处理大范围,这将有所作为。

for i in {A..C}
do
   ./test.sh -o c03 -d mydb -t tbl"$i" c13 -r us-east-1
done