2016-03-18 16 views
0

如何以先前的迭代結果顯示數組中的每一行?像這個例子:1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F,J,H,I,J,K,L,M N,O,P,Q,R,S,T,U,V,W,X,Y,Z,1A,1B,1C,1D,1E,1F ....等Bash從數組中foreach並在下一次迭代中追加結果

請幫忙!

我的代碼:

#!/usr/bin/env bash 

    STRINGS=(0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) 
    str="" 

    more() { 
     echo $str; 
     # run again each() 
    } 

    each() { 
     for i in "${STRINGS[@]}" 
     do 
      echo $i 
      str="${i}"; 
     done 
     more; 
    } 

    each; 
+4

你可以讓你的樣本輸入和輸出更精確嗎? 「你在下一次迭代中追加結果」是什麼意思?例如,你是否想要「0」,然後「0 1」,然後「0 1 2」,然後「0 1 2 3」等等? – assefamaru

+0

例如,如果您以'STRINGS =(x y)'開頭,則完整的預期輸出是多少。 – pjh

回答

1

在這裏你去...

$ echo {0..9} {A..Z} {1..9}{A..Z} 

0 1 2 3 4 5 6 7 8 9 ABCDEFGHIJKLMNOPQRSTU VWXY Ž1A 1B 1C 1D 1E 1F 1G 1H 1I 1J 1K 1L 1M 1N 1O 1P 1Q 1R 1S 1T 1U 1V 1W 1X 1Y 1Z 2A 2B 2C 2D 2E 2F 2G 2H 2I 2J 2K 2L 2M 2N 2O 2P 2Q 2R 2S 2T 2U 2V 2W 2X 2Y 2Z 3A 3B 3C 3D 3E 3F 3G 3H 3I 3J 3K 3L 3M 3N 3O 3P 3Q 3R 3S 3T 3U 3V 3W 3X 3Y 3Z 4A 4B 4C 4D 4E 4F 4G 4H 4I 4J 4K 4L 4M 4N 4O 4P 4Q 4R 4S 4T 4U 4V 4W 4X 4Y 4Z 5A 5B 5C 5D 5E 5F 5G 5H 5I 5J 5K 5L 5M 5N 5O 5P 5Q 5R 5S 5T 5U 5V 5W 5X 5Y 5Z 6A 6B 6C 6D 6E 6F 6G 6H 6I 6J 6K 6L 6M 6N 6O 6P 6Q 6R 6S 6T 6U 6V 6W 6X 6Y 6Z 7A 7B 7C 7D 7E 7F 7G 7H 7I 7J 7K 7L 7M 7N 7O 7P 7Q 7R 7S 7T 7U 7V 7W 7X 7Y 7Z 8A 8B 8C 8D 8E 8F 8G 8H 8I 8J 8K 8L 8M 8N 8O 8P 8Q 8R 8S 8T 8U 8V 8W 8X 8Y 8Z 9A 9B 9C 9D 9E 9F 9G 9H 9I 9J 9K 9L 9M 9N 90 9P 9Q 9R 9S 9T 9U 9V 9W 9X 9Y 9Z

,如果你想以逗號分隔的管道進入​​3210

+0

目前還不清楚這是否是OP想要的,但我們可能永遠不知道OP想要什麼。 Upvoted,因爲它是Bash「序列表達式」的一個非常好的演示。 – pjh

相關問題