【问题标题】:How to make one line for loop in android shell如何在android shell中制作一行for循环
【发布时间】:2014-04-16 03:14:33
【问题描述】:

这适用于 bash

for i in {1..5}; do echo $i; done

输出是 1 2 3 4 5 但是在 android shell 上 输出是 {1..5}

【问题讨论】:

    标签: android bash shell sh


    【解决方案1】:
    i=0; while [ $(($i)) -le 5 ]; do i=$(($i + 1)); echo $i; done;
    

    在 Galaxy Tab 4 7" 中的 adb shell 上进行测试——感谢 Lynch 提供的大部分答案。'expr 在默认 shell 中失败。

    【讨论】:

      【解决方案2】:

      你试过了吗,

      for ((i=1; i<=5; i++)) do echo $i; done
      

      编辑-

      或者你可以使用序列,

      for i in `seq 1 5`; do echo $i; done
      

      【讨论】:

      • 您提到的是bash 构造。如果大括号扩展不起作用,那么这将永远不起作用/
      • 双括号和 seq 函数在我的默认 Android ADB shell 上都不起作用。
      【解决方案3】:

      如果您的序列不是太大,您可以列出感兴趣的值。所以在默认的 Android ADB shell 中:

      for i in 1 2 3; do echo $i; done
      
      Returns:
      1
      2
      3
      

      或:

      for i in 5 11 7; do echo $i; done
      
      Returns:
      5
      11
      7
      

      甚至:

      for i in apple orange banana; do echo $i; done
      
      Returns:
      apple
      orange
      banana
      

      【讨论】:

      • 这就是我最终要做的。像我需要的那样列出 30 个数字并不漂亮,但它确实有效,而且比我在墙上寻找完美解决方案要快。
      【解决方案4】:

      如果你的 shell 是 sh 则使用以下命令:

      for i in `seq 1 5`; do echo $i; done
      

      编辑

      您可能没有seq 程序。试试这个命令:

      i=1; while [ $i -le 5 ] ; do echo $i; i=`expr $i + 1`; done
      

      【讨论】:

      • seq 函数在我的默认 Android ADB shell 上不起作用。
      猜你喜欢
      • 2019-03-23
      • 2022-09-28
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2017-01-29
      • 1970-01-01
      • 2013-03-25
      • 2015-08-28
      相关资源
      最近更新 更多