Sto cercando di aggiungere 1 numero dalla riga di comando e un numero come predefinito. Ad esempio: quando lutente digita il numero 50, lo script aggiungerà 10 (come numero predefinito).
./script 50 The sum of 50+ 10 is 60. 
Questo è quello che ho finora.
echo -n "Please enter a number: " read number default = 10 sum = $((default + number)) // this line does not seem to work echo "The sum of $number and 10 is $sum." 
Ho la sintassi sbagliata? Non sono sicuro di essere sulla strada giusta. Sto aggiungendo i numeri in modo sbagliato? Dovrei invece usare awk?
let sum = $default + $number 
Commenti
-  Solo per aggiungere, invece di 
echoing e poi luso direadpuoi digitare direttamente:read -p 'Please enter a number: ' yournumber 
Risposta
Gli spazi stanno causando gli errori.
Se desideri che lutente inserisca il numero quando gli viene chiesto come “Inserisci un numero:”, puoi utilizzare il tuo script con alcune correzioni come:
#!/bin/bash echo -n "Please enter a number: " read number default=10 sum=`echo "$number + $default" | bc` echo "The sum of $number and 10 is $sum." 
Controlla:
./temp.sh Please enter a number: 50 The sum of 50 and 10 is 60. 
Se vuoi noi Per inserire il numero come argomento dello script, puoi utilizzare lo script seguente:
#!/bin/bash number="$1" default=10 sum=`echo "$number + $default" | bc` echo "The sum of $number and 10 is $sum." 
Controlla:
./temp.sh 50 The sum of 50 and 10 is 60. 
Commenti
- Perché preoccuparsi di eseguire bc solo per eseguire semplici operazioni aritmetiche su interi?
 
Risposta
Non dovresti avere spazi tra “default = 10” & “sum = $”, anche predefinito & il numero dovrebbe avere $ prima di loro per poter leggere dalle variabili.
Lo script quindi funziona come previsto per me, se scritto come di seguito;
#!/bin/bash echo -n "Please enter a number: " read number default=10 sum=$(($default + $number)) echo "The sum of $number and 10 is $sum." 
Commenti
Answer
Questo è il modo più veloce per fare ciò che chiedi:
#!/bin/bash echo "The sum of $1 + 10 is $(($1 + 10))." 
Output:
creme@fraiche:~/$ ./script.sh 50 The sum of 50 + 10 is 60. 
Commenti
-  che potrebbe essere pericoloso – prova 
./script.sh '((PATH=0)+(ANY_OTHER_VARNAME=[ANY INTEGER]))' - @mikeserv Molto preciso, tuttavia per lesercizio I ' non sono sicuro che sia un problema. Grazie per il tuo commento a prescindere.
 
$allinterno dellespressione aritmetica. Ad esempio, prova questo:num=5;def=10;echo "sum = $((num + def))"