Использование теста оболочки:
#!/bin/bash
read -rp "Choose a number between 1 and 100: " num
echo
if [ "$num" -le 100 -a "$num" -ge 1 ]; then
echo "You chose $num"
else
echo "you chose a number outside of the boundary"
fi
Использование расширенного теста bash:
#!/bin/bash
read -rp "Choose a number between 1 and 100: " num
echo
if [[ "$num" -le 100 && "$num" -ge 1 ]]; then
echo "You chose $num"
else
echo "you chose a number outside of the boundary"
fi
Использование арифметики оболочки:
#!/bin/bash
read -rp "Choose a number between 1 and 100: " num
echo
if ((num<=100 && num>=1)); then
echo "You chose $num"
else
echo "you chose a number outside of the boundary"
fi
Примечание :Вы используете -o
для или , но, похоже, вам нужно -a
для и . С или должно быть выполнено только одно условие, чтобы число могло быть -1 или 101.
Кроме того, правая часть -o
похожа на совершенно новый тест, поэтому вам нужно повторно ввести переменную на этой стороне. Кроме того, я просто использую else
вместо оператора elif
, потому что, если число не проходит первый тест, нет необходимости выполнять для него еще один тест.
input file
1,2,20,11
1,1,2018,111
команда
awk -F ',' '{if(length($2)==1)$2="0"$2;print $0}' inputfile | awk '{if(length($3)==4)$3=substr($3,3,2);print $0}'| sed 's/ /,/g'
выход
1,02,20,11
1,01,18,111
Коллега указал мне на это описание ошибки для GNOME под Ubuntu:
https://bugs.launchpad.net/ubuntu/+source/meta-gnome3/+bug/1872870
Пока (на сегодняшний день )нет надлежащего решения проблемы, но они нашли обходной путь:
gnome-control-center
). Очевидно, что это отключает масштабирование, что может вызвать проблемы у многих пользователей. Но это позволяет избежать проблемы со следами прямоугольников и, следовательно, может быть приемлемым решением для некоторых пользователей (, таких как я ).