/ / Leggere l'input dell'utente nella stessa riga dell'esecuzione dello script - bash, shell

Leggere l'input dell'utente nella stessa riga dell'esecuzione dello script - bash, shell

Ho uno script BASH chiamato fib.sh. Lo script legge un input dell'utente (numero) ed esegue un calcolo. Voglio essere in grado di digitare

$ ./fib.sh 8

dove 8 è l'input

Attualmente, devo aspettare la riga successiva per inserire l'input.

$ ./fib.sh
$ 8

copione

#!/bin/bash

read n

a=0
b=1
count=1
fib=$a

while [ $count -lt $n ];
do
fib=$[$a+$b]
a=$b
b=$fib
count=$[$count+1]
done

echo "fib $n = $fib"

exit 0

risposte:

1 per risposta № 1

Quindi vuoi passare un parametro allo script invece di leggerlo. In questo caso, usa $1 come mostrato qui:

#!/bin/bash

n=$1 <---- this will take from the call of the script
echo "I have been given the parameter $n"

a=0
b=1
count=1
fib=$a

while [ $count -lt $n ];
do
fib=$[$a+$b]
a=$b
b=$fib
count=$[$count+1]
done

echo "fib $n = $fib"

exit 0