Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Why doesn't the second method work?
- CONFIG_IS="manual" ; TEST_0="0" ; TEST_1="0" ; TEST_2="0" ; TEST_3="1" ; TEST_4="1" ; TEST_5="1" ; TEST_6="0" ; TEST_7="1" ; echo "Values:"
- echo -e "\$TEST_0=$TEST_0\n\$TEST_1=$TEST_1\n\$TEST_2=$TEST_2\n\$TEST_3=$TEST_3\n\$TEST_4=$TEST_4\n\$TEST_5=$TEST_5\n\$TEST_6=$TEST_6\n\$TEST_7=$TEST_7"
- TEST_PROGRESS="0" ; ORIGINAL_LOOP="0" ; echo "THIS METHOD WORKS:"
- while [ "$TEST_PROGRESS" -le 7 ] ; do
- echo "Looping $ORIGINAL_LOOP" ; SKIP_ROUND="0"
- if [[ "$CONFIG_IS" = "manual" ]] ; then
- case "$TEST_PROGRESS" in
- 0 ) [ "$TEST_0" -eq 0 ] && SKIP_ROUND="1" ;;
- 1 ) [ "$TEST_1" -eq 0 ] && SKIP_ROUND="1" ;;
- 2 ) [ "$TEST_2" -eq 0 ] && SKIP_ROUND="1" ;;
- 3 ) [ "$TEST_3" -eq 0 ] && SKIP_ROUND="1" ;;
- 4 ) [ "$TEST_4" -eq 0 ] && SKIP_ROUND="1" ;;
- 5 ) [ "$TEST_5" -eq 0 ] && SKIP_ROUND="1" ;;
- 6 ) [ "$TEST_6" -eq 0 ] && SKIP_ROUND="1" ;;
- 7 ) [ "$TEST_7" -eq 0 ] && SKIP_ROUND="1" ;;
- esac
- if [ "$SKIP_ROUND" -eq 1 ] ; then
- ((TEST_PROGRESS++))
- continue
- fi
- fi
- case "$TEST_PROGRESS" in
- 0 | 1 | 2 | 3 ) TEST_TYPE="A" ;;
- 4 | 5 | 6 | 7 ) TEST_TYPE="B" ;;
- esac
- TEST_TYPE="$TEST_PROGRESS-$TEST_TYPE"
- echo -e "\$TEST_PROGRESS is $TEST_PROGRESS (original: $ORIGINAL_LOOP)\n\$TEST_TYPE is $TEST_TYPE"
- ((ORIGINAL_LOOP++)) ; ((TEST_PROGRESS++))
- done
- echo "Loop ended."
- CONFIG_IS="manual" ; TEST_0="0" ; TEST_1="0" ; TEST_2="0" ; TEST_3="1" ; TEST_4="1" ; TEST_5="1" ; TEST_6="0" ; TEST_7="1" ; echo "Values:"
- echo -e "\$TEST_0=$TEST_0\n\$TEST_1=$TEST_1\n\$TEST_2=$TEST_2\n\$TEST_3=$TEST_3\n\$TEST_4=$TEST_4\n\$TEST_5=$TEST_5\n\$TEST_6=$TEST_6\n\$TEST_7=$TEST_7"
- TEST_PROGRESS="0" ; ORIGINAL_LOOP="0" ; echo "THIS METHOD DOES NOT WORK:"
- while [ "$TEST_PROGRESS" -le 7 ] ; do
- echo "Looping $ORIGINAL_LOOP"
- if [[ "$CONFIG_IS" = "manual" ]] ; then
- case "$TEST_PROGRESS" in
- 0 ) [ "$TEST_0" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;; # count increment is performed but not continue..?
- 1 ) [ "$TEST_1" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;; # I also tried: if [ ...] ; then ((T++)) && continue ; fi ;;
- 2 ) [ "$TEST_2" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;;
- 3 ) [ "$TEST_3" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;;
- 4 ) [ "$TEST_4" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;;
- 5 ) [ "$TEST_5" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;;
- 6 ) [ "$TEST_6" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;;
- 7 ) [ "$TEST_7" -eq 0 ] && (( TEST_PROGRESS++ )) && continue ;;
- esac
- fi
- case "$TEST_PROGRESS" in
- 0 | 1 | 2 | 3 ) TEST_TYPE="A" ;;
- 4 | 5 | 6 | 7 ) TEST_TYPE="B" ;;
- esac
- TEST_TYPE="$TEST_PROGRESS-$TEST_TYPE"
- echo -e "\$TEST_PROGRESS is $TEST_PROGRESS (original: $ORIGINAL_LOOP)\n\$TEST_TYPE is $TEST_TYPE"
- ((ORIGINAL_LOOP++)) ; ((TEST_PROGRESS++))
- done
- echo "Loop ended."
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement