2016-06-07 7 views

ответ

1

Там многосвязные способы сделать это:

a="-02" 
echo "$((a+0))" 

Другим с регулярным выражением:

a="-02" 
echo "${a//-0/-}" 

Или

a="-02" 
[[ "$a" =~ ^(-*|\+*)0*(.*)$ ]] 
echo "${BASH_REMATCH[1]}${BASH_REMATCH[2]}" 

И bc:

a="-02" 
bc <<< "$a + 0" 
+0

Мне понравился вариант с bc. Он также работает с плавающим, позитивным и отрицательным числом. Но в случае, когда a = "+ 00", это не работает. Любой выход? –

+0

@GoutamDas В этом случае я думаю, вам нужно будет удалить '+', что-то вроде этого: 'bc <<<" $ {a # +} + 0 "' – andlrc

0

Одно решение, как я знаю следующее:

echo -02 | awk '{$0=int($0)}1' 

, но он работает только с целым числом. Для плавания есть какой-то способ?

+0

Не бросать его в int? – 123

1

Как насчет использования встроенного printf?

$ num=-02 
$ printf "%d\n" "$num" 
-2