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

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

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.

Pergunta prática da entrevista sobre scripts de shell

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. 1. Deixe o número de entrada = n
  2. 2. Definir Rev = 0, SD = 0 (reverso e digite única definida como 0)
  3. 3. n % 10, encontrará e dará um único dígito à esquerda
  4. 4. O número reverso é gerado como Rev * 10 + SD
  5. 5. Diminuir o número de entrada (n) por 1.
  6. 6. Se n> 0, então Goto Etapa 3 mais goto setp 7
  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.