((...))
é a maneira de fazer aritmética, não de parênteses únicos, e você não precisa de citações aqui Tente:
sum=$((num1+num2))
Atualmente estou tentando fazer um comando de adição no unix e criei o seguinte código:
#! /bin/bash
#! Add - adds two given numbers together and displays the result
"$num1" = $1
"$num2" = $2
echo "Enter two numbers"
read num1 num2
sum=$(“$num1” + “$num2”)
echo "The sum is = $sum"
Isso, no entanto, não funciona.
Ignorando os erros de sintaxe no script, parece que os dois números são dados , ou seja, eles estão presentes na linha de comando do script.
Isso significa que o script pode ser reduzido a
#!/bin/sh
printf 'The sum of %d and %d is %d\n' "$1" "$2" "$(( $1 + $2 ))"
Isto obviamente não faz verificação dos argumentos passados. Por exemplo, ele não verifica se há exatamente dois argumentos e também não verifica se são números inteiros decimais.
O script seria usado como
$ ./script.sh -23 32
The sum of -23 and 32 is 9
Tags command shell-script