Como engadir cálculos a un script Bash
Aínda que Bash é un linguaxe de script, ten case todas as capacidades dunha linguaxe de programación de propósito xeral. Isto inclúe funcións aritméticas. Existen varias opcións de sintaxe que pode usar para evocar a avaliación aritmética dunha expresión. Quizais o máis lexible sexa o comando de deixar . Por exemplo
deixe "m = 4 * 1024"computará 4 veces 1024 e asignará o resultado á variable "m".
Pode imprimir o resultado engadindo unha declaración de eco :
deixe "m = 4 * 1024" eco $ mPodes probar isto desde a liña de comandos introducindo o seguinte código:
deixe "m = 4 * 1024"; eco $ mTamén pode crear un ficheiro que conteña os comandos Bash, en cuxo caso debería engadir unha liña na parte superior do ficheiro que especifica o programa que se supón que debe executar o código. Por exemplo:
#! / bin / bash deixe "m = 4 * 1024" eco $ masumindo que o executable Bash está situado en / bin / bash . Tamén cómpre establecer os permisos do ficheiro de script para que sexa executable. Supoñendo que o nome do ficheiro de script é script1.sh , pode establecer os permisos para executar o ficheiro co comando:
chmod 777 script1.shLogo podes executalo co comando:
./script1.shAs operacións aritméticas dispoñibles son similares ás de linguaxes de programación estándar como Java e C. Ademais da multiplicación, como se ilustra arriba, usa ademais:
deixe "m = a + 7"ou resta:
deixe "m = a - 7"ou división:
deixe "m = a / 2"ou módulo (o resto despois dunha división enteira):
deixe "m = un% 100"Cando se aplica unha operación á mesma variable á que se asigna o resultado pode usar os operadores de asignación aritmética estándar, tamén coñecidos como operadores de asignación composta. Por exemplo, para engadir, temos:
deixe "m + = 15"que equivale a "m = m + 15". Para a resta temos:
deixe "m - = 3"o que equivale a "m = m - 3". Para división temos:
deixe "m / = 5"o que equivale a "m = m / 5". E para módulo, temos:
deixe "m% = 10"o que equivale a "m = m% 10".
Ademais, pode usar os operadores de incremento e redución :
deixe "m ++"É equivalente a "m = m + 1". E
deixe "m--"É equivalente a "m = m - 1".
E despois está o operador ternario de "punto de referencia", que retorna un dos dous valores segundo se a condición especificada é verdadeira ou falsa. Por exemplo
deixe "k = (m <9)? 0: 1"O lado dereito desta declaración atribúese a "0" se a variable "m" é menor que 9. Se non, valórase a 1. Isto significa que a variable "k" está asignada "0" se "m" é menor. de 9 e "1" de outra forma.
A forma xeral do operador de colon de interrogación é:
condición? value-if-true: value-if-falseAritmética de punto flotante en Bash
O operador let só funciona para aritmética enteira. Para aritmética de punto flotante pódese usar, por exemplo, a calculadora GNU bc como se ilustra neste exemplo:
echo "32.0 + 1.4" | bcO operador "pipe" "|" pasa a expresión aritmética "32.0 + 1.4" á calculadora bc, que devolve o número real. O comando echo imprime o resultado á saída estándar.
Sintaxe alternativa para aritmética
Backticks (voltar citas simples) pode usarse para avaliar unha expresión aritmética como neste exemplo:
eco `expr $ m + 18`Isto engadirá 18 ao valor da variable "m" e despois imprimirá o resultado.
Para asignar o valor de cálculo a unha variable pode usar o sinal igual sen espazos en torno a el:
m = `expr $ m + 18`Outra forma de avaliar as expresións aritméticas é empregar dous parénteses. Por exemplo:
((m * = 4))Isto cuadruplicará o valor da variable "m".
Ademais da avaliación aritmética, o shell Bash proporciona outras construcións de programación, como for-loops , while-loops , condicionales e funcións e subrutinas .