Bash (Ubuntu) - Строки в циклах с условием продолжения?

Я думаю, что Вы просто смущены поврежденной пунктуацией на той странице. _ и [ остатки некоторой разметки, они не часть iptables синтаксис. Также | символ не может использоваться для разделения дюйм/с, необходимо использовать , (запятая).

/sbin/iptables -t nat -A OUTPUT -p tcp -d 54.224.121.116,54.224.121.116 --dport 80 -j  REDIRECT --to-port 8080
8
13.02.2015, 08:02
4 ответа

Как и другие, вы не должны использовать -NE целочисленное сравнение целочисленного сравнения, чтобы сравнить строки - скорее вам следует использовать = /! = в Тест [ кронштейны ] . Тем не менее, даже, даже это хрупко в лучшем случае - строки должны совпадать точно, а » делает равным » . Часто лучше обрабатывать в футляре S в том контексте:

set --
while   read  word
        case $?$#$word            in 
        ($?$#[Nn][Ee][Xx][Tt]) ! :;;
        ([!0]*|05*) ! break       ;;esac
do      set '' "$@"
done   

приводили значение по умолчанию для $ ifs (что стоит посмотреть, если вы планируете делать Shell S) , который должен работать для любого верхнего / нижнего значения следующего (если вам это требуется) , и сохраните петлю с бегом без конца.

4
27.01.2020, 20:08

Использование ! = вместо -NE

echo -e "Please type next to continue."
read word 
while [ "$word" != "next" ]
do 
    read word
done

Проверьте это для сравнения операторов. http://tldp.org/howto/bash-prog-intro-howto-11.html

11
27.01.2020, 20:08

Вы используете неправильный оператор сравнения. Вы должны использовать «! =» Для строки и «-на» для целых чисел следующим образом:

#Beginning of code
echo -e "Please type next to continue."
read word
while [ "$word" != "next" ]
do
    read word
done
#the rest of the code

Оформить заказ Эта страница: Advanced Bash Сценарии: Сравнительные операции

2
27.01.2020, 20:08

Я думаю, вы хотите:

echo 'Please type "next" to continue.'
while read word && [ "$word" != next ]; do
  : something in the loop if needed
done

Это хорошая идея, чтобы также проверить конец файла на stdin (здесь Проверяя статус выхода из Читать ).

4
27.01.2020, 20:08

Теги

Похожие вопросы