Perguntas e respostas práticas da entrevista sobre script de shell linux

- 4985
- 470
- Mrs. Willie Beahan
Com a resposta esmagadora, estamos recebendo os artigos da série de entrevistas, a primeira do gênero em qualquer site de instruções do Linux na forma de curtidas, feedbacks em comentários e em endereço de e-mail pessoal nos fazem ir de um artigo para o próximo artigo.
Aqui está o link para os artigos da série de entrevistas já publicados no Tecmint.com, onde abordamos muitos tópicos viz., FTP, MySQL, Apache, Scripts, Linux Comandos, etc.

Continuando para a série acima aqui, estamos vindo com outras 5 maravilhosas perguntas da entrevista do Linux e sua resposta. Seu (o tecmint.com leitores e visitantes frequentes) é sempre necessário apoio para torná -lo bem -sucedido.
1. Escreva um script de shell para obter data atual, hora, nome de usuário e diretório de trabalho atual.
Responder : Os comandos LogName, Date, quem eu sou e PWD produzirão nome de usuário, data e hora atuais e diretório de trabalho atual. Apenas implementando esses comandos no script e tornando -o um pouco interativo.Agora crie um arquivo chamado 'UserStats.sh'e adicione o seguinte código a ele.
#!/bin/bash eco "Olá, $ logname" echo "data atual é 'data'" eco "o usuário é 'quem eu sou'" eco "diretório atual 'pwd'"
Coloque a permissão execute e execute o script como mostrado abaixo.
# CHMOD 755 UserStats.sh # ./UserStats.sh
Saída de amostra
Olá, a data atual da AVI é SAT 7 de junho 13:05:29 IST 2014 Usuário é AVI PTS/0 2014-06-07 11:59 (: 0)
2. Escreva um script de shell que adicione dois números se fornecido como o argumento da linha de comando e se os dois números não forem inseridos, ele gera uma mensagem de erro juntamente com uma linha de como usar a descrição.
Responder : Aqui está o script de shell simples, juntamente com a descrição que adiciona dois número se fornecido como argumento da linha de comando, se não ele lança erro com uma única linha sobre como usar o script.Crie novamente um arquivo chamado 'dois números.sh'e adicione o seguinte conteúdo a ele.
#!/bin/bash # o shebang se [$ # -ne 2] # Se duas entradas não forem recebidas da entrada padrão, então execute as instruções abaixo eco script (uso - ./1.sh x y) eco "onde x e y são dois nos para os quais imprimirei a soma" # IMPRIMENTO NA SAÍDA PADRÃO, “onde x e y são dois nos para os quais imprimirei a soma” Sair 1 # Deixe o shell no estágio de erro e antes A tarefa foi realizada com sucesso. Fi # final da declaração if. eco "a soma de US $ 1 e US $ 2 é 'expr $ 1 + $ 2'" # se a condição acima foi falsa e o usuário inseriu dois números como um argumento da linha de comando, ele mostrará a soma dos números inseridos.
Defina a permissão do Executor no arquivo e execute o script como mostrado abaixo.
# chmod 755 dois números.sh
Condição 1: Executando o script sem inserir dois números como argumento da linha de comando, você obterá a seguinte saída.
Saída de amostra
# ./dois números.uso de sh - ./dois números.sh x y onde x e y são dois nos para os quais vou imprimir a soma
Condição 2: Quando os números são inseridos como argumento da linha de comando, você receberá o resultado como mostrado.
$ ./dois números.sh 4 5 soma de 4 e 5 é 9
Portanto, o script de shell acima atende a condição conforme sugerido na pergunta.
3. Você precisa imprimir um determinado número, digamos 10572, em ordem inversa usando um script de shell, de modo que a entrada seja fornecida usando apenas o argumento da linha de comando. Se os dados de entrada não forem fornecidos como argumento da linha de comando, eles devem jogar e errar e devem sugerir, como usar o script. Escreva o script, mas antes disso me diga o algoritmo que precisa ser implementado aqui.
Algoritmo
- 1. Deixe o número de entrada = n
- 2. Definir Rev = 0, SD = 0 (reverso e digite única definida como 0)
- 3. n % 10, encontrará e dará um único dígito à esquerda
- 4. O número reverso é gerado como Rev * 10 + SD
- 5. Diminuir o número de entrada (n) por 1.
- 6. Se n> 0, então Goto Etapa 3 mais goto setp 7
- 7. Imprima rev
Agora, novamente, crie um arquivo chamado 'números.sh'e adicione o seguinte código de código.
#!/bin/bash se [$# -ne 1] então eco. $ 0 0123, vou imprimir 3210 "Sair 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 eco" o número reverso é $ re rev "
Conceder uma permissão de execução no arquivo e execute o script como mostrado abaixo.
# CHMOD 755 números.h
Condição 1: Quando a entrada não é fornecida como argumento da linha de comando, você obterá a seguinte saída.
Saída de amostra
./números.SH Uso: ./números.SH Número, encontrarei o reverso do determinado número para por exemplo… /2.SH 123, vou imprimir 321
Condição 2: Quando a entrada foi fornecida como argumento da linha de comando.
$ ./números.SH 10572 O número reverso é 27501
O script acima funcionou perfeitamente e a saída era exatamente o que precisávamos.
4. Você deve calcular um cálculo de número real diretamente do terminal e não qualquer script de shell. O que você vai fazer (diga que os números reais são 7.56 e 2.453)?
Responder : Precisamos usar o comando BC de uma maneira especial, conforme descrito abaixo. A saída do Echo 7.56 + 2.453 devem ser pipelados para BC.Por exemplo, execute o seguinte comando para calcular números em tempo real usando bc comando como mostrado.
$ ECHO 7.56 + 2.453 | BC 10.013
5. Você deveria encontrar o valor de Pi até 100 locais de decimal, qual é a maneira mais fácil de fazer o resultado.
Responder : A maneira mais fácil de encontrar o valor do PI, correto até 100 locais de decimal, só precisamos emitir o comando abaixo.# pi 100 3.141592653589793238462643383279502884197169399937510582097494459230781640628620899862803482525342117067
Obviamente! Devemos ter pacote 'pi'instalado. Apenas faça um apt ou yum Para obter um pacote necessário para instalar 'Pi'Na distribuição que você está usando.
É tudo por agora. Estarei aqui novamente com outro artigo interessante muito em breve. Até então, fique atento e conectado ao Tecmint.com. Não se esqueça de nos fornecer um feedback valioso na seção de comentários abaixo.
- « Instalando Lemp (Linux, Nginx, MySQL/Mariadb, Php/Php-FPM e Phpmyadmin) em Gentoo Linux
- Criar uma .Deb Package Repository ”no SourceForge.rede usando a ferramenta “Reprepro” no Ubuntu »