Domande e risposte sull'intervista pratica sullo scripting della shell Linux
Con la travolgente risposta che stiamo ottenendo con gli articoli della serie di interviste, i primi nel loro genere su qualsiasi sito Web Linux How-to sotto forma di Mi piace, Feedback nei commenti e indirizzi e-mail personali, ci fanno passare da un articolo all'altro articolo.
Ecco il collegamento agli articoli della serie di interviste già pubblicati su Tecint.com, in cui abbiamo trattato molti argomenti, ad esempio FTP, MySQL, Apache, Scripting, comandi Linux, ecc.
Continuando con la serie precedente eccoci qui con altre 5 meravigliose domande per interviste su Linux e la loro risposta. Il tuo supporto (i lettori di linux-console.net e i visitatori abituali) è sempre necessario per avere successo.
1. Scrivi uno script di shell per ottenere la data, l'ora, il nome utente e la directory di lavoro correnti.
Ora crea un file chiamato "userstats.sh" e aggiungivi il seguente codice.
#!/bin/bash
echo "Hello, $LOGNAME"
echo "Current date is `date`"
echo "User is `who i am`"
echo "Current directory `pwd`"
Posiziona l'autorizzazione di esecuzione ed esegui lo script come mostrato di seguito.
chmod 755 userstats.sh
./userstats.sh
Uscita del campione
Hello, avi
Current date is Sat Jun 7 13:05:29 IST 2014
User is avi pts/0 2014-06-07 11:59 (:0)
Current directory /home/avi/Desktop
2. Scrivere uno script di shell che aggiunga due numeri se forniti come argomento della riga di comando e se i due numeri non vengono immessi genera un messaggio di errore insieme a una riga di descrizione dell'uso.
Crea nuovamente un file chiamato "two-numbers.sh" e aggiungivi il seguente contenuto.
#!/bin/bash
The Shebang
if [ $# -ne 2 ]
If two Inputs are not received from Standard Input
then
then execute the below statements
echo "Usage - $0 x y"
# print on standard output, how-to use the script (Usage - ./1.sh x y )
echo " Where x and y are two nos for which I will print sum"
# print on standard output, “Where x and y are two nos for which I will print sum ”
exit 1
# Leave shell in Error Stage and before the task was successfully carried out.
fi
End of the if Statement.
echo "Sum of $1 and $2 is `expr $1 + $2`"
# If the above condition was false and user Entered two numbers as a command Line Argument,
it will show the sum of the entered numbers.
Imposta l'autorizzazione dell'esecutore sul file ed esegui lo script come mostrato di seguito.
chmod 755 two-numbers.sh
Condizione 1: eseguendo lo script senza inserire due numeri come argomento della riga di comando, otterrai il seguente output.
Uscita del campione
./two-numbers.sh
Usage - ./two-numbers.sh x y
Where x and y are two nos for which I will print sum
Condizione 2: quando i numeri vengono inseriti come argomento della riga di comando otterrai il risultato come mostrato.
./two-numbers.sh 4 5
Sum of 4 and 5 is 9
Quindi lo script di shell sopra soddisfa la condizione suggerita nella domanda.
3. È necessario stampare un determinato numero, ad esempio 10572, in ordine inverso utilizzando uno script Shell in modo tale che l'input venga fornito utilizzando solo l'argomento della riga di comando. Se i dati di input non vengono forniti come argomento della riga di comando, dovrebbero generare un errore e suggerire come utilizzare lo script. Scrivi lo script ma prima dimmi l'algoritmo che deve essere implementato qui.
Algoritmo
- 1. Sia il Numero di Ingresso=n
- 2. Impostare rev=0, sd=0 (la cifra inversa e singola è impostata su 0)
- 3. n % 10, troverà e fornirà la singola cifra più a sinistra
- 4. il numero inverso viene generato come rev * 10 + sd
- 5. Diminuire il numero di input (n) di 1.
- 6. se n > 0, vai al passo 3 altrimenti vai al setp 7
- 7. Stampa rev
Ora di nuovo, crea un file chiamato "numbers.sh" e aggiungilo il seguente codice.
#!/bin/bash
if [ $# -ne 1 ]
then
echo "Usage: $0 number"
echo " I will find reverse of given number"
echo " For eg. $0 0123, I will print 3210"
exit 1
fi
n=$1
rev=0
sd=0
while [ $n -gt 0 ]
do
sd=`expr $n % 10`
rev=`expr $rev \* 10 + $sd`
n=`expr $n / 10`
done
echo "Reverse number is $rev"
Concedere un'autorizzazione di esecuzione sul file ed eseguire lo script come mostrato di seguito.
chmod 755 numbers.h
Condizione 1: quando l'input non viene fornito come argomento della riga di comando, otterrai il seguente output.
Uscita del campione
./numbers.sh
Usage: ./numbers.sh number
I will find reverse of given number
For eg. ./2.sh 123, I will print 321
Condizione 2: quando l'input è stato fornito come argomento della riga di comando.
./numbers.sh 10572
Reverse number is 27501
Lo script sopra ha funzionato perfettamente e l'output era proprio ciò di cui avevamo bisogno.
4. Dovresti calcolare un calcolo di numeri reali direttamente dal terminale e non da uno script di shell. Cosa farai (diciamo che i numeri reali sono 7,56 e 2,453)?
Ad esempio, esegui il comando seguente per calcolare i numeri in tempo reale utilizzando il comando bc come mostrato.
echo 7.56 + 2.453 | bc
10.013
5. Dovresti trovare il valore di pi greco fino a 100 cifre decimali, qual è il modo più semplice per ottenere il risultato.
pi 100
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
Ovviamente! Dobbiamo avere il pacchetto "pi" installato. Basta fare a apt o yum per ottenere il pacchetto necessario per installare 'pi' sulla distribuzione che stai utilizzando.
È tutto per ora. Sarò di nuovo qui con un altro articolo interessante molto presto. Fino ad allora restate sintonizzati e connessi a linux-console.net. Non dimenticare di fornirci il tuo prezioso feedback nella sezione commenti qui sotto.