shell - determina se há parâmetros passados quando o script é executado, determina se o arquivo/pasta existe, determina se as strings são iguais, determina se o comando anterior foi executado normalmente e determina se a string está vazia

1. Determine se há parâmetros passados ​​quando o script é executado ou determine o número de parâmetros passados

1. Determine se há parâmetros passados ​​quando o script é executado ou determine o número de parâmetros passados

Em um script Shell, para determinar o número de parâmetros, você pode usar variáveis ​​especiais  $# para obter o número de parâmetros passados ​​para o script ou função.

if [ $# -eq 0 ]; then
    echo "No arguments provided."
else
    echo "Number of arguments: $#"
fi

No exemplo acima,  $# o valor da variável é verificado para ver se há algum argumento passado para o script ou função. Se o número de argumentos for zero, imprima "Nenhum argumento fornecido."; caso contrário, imprima "Número de argumentos: " seguido do número de argumentos.

2. Determine se o arquivo ou pasta existe

1. Determine se o arquivo existe
if [ -f "/path/to/file" ]; then
    echo "File exists."
else
    echo "File does not exist."
fi

No exemplo acima, substitua /path/to/file pelo caminho real do arquivo a ser verificado. O parâmetro -f é usado para verificar se o caminho é um arquivo comum. Se o arquivo existir, imprima "Arquivo existe."; caso contrário, imprima "Arquivo não existe."

ou

if [[ -f "/path/to/file" ]]; then
    echo "File exists."
else
    echo "File does not exist."
fi

Ao contrário dos colchetes [], [[ fornece mais funcionalidade e flexibilidade e é mais comumente usado em testes condicionais.

ou

O comando de teste também pode ser usado diretamente para julgamento condicional.

Nota: O caminho no exemplo acima é um caminho esquemático e precisa ser substituído pelo caminho real do arquivo a ser verificado.

Se quiser determinar se existe um diretório em vez de um arquivo, você pode  -f substituir o parâmetro pelo  -d parâmetro.

2. Determine se a pasta existe
if [ -d "relative/path/to/directory" ]; then
    echo "Directory exists."
else
    echo "Directory does not exist."
fi

No exemplo acima, substitua relativo/caminho/para/diretório pelo caminho da pasta no caminho relativo que você deseja verificar. O parâmetro -d é usado para verificar se o caminho é um diretório . Se o diretório existir, imprima "Diretório existe."; caso contrário, imprima "Diretório não existe.".

 ou

if [[ -d "relative/path/to/directory" ]]; then
    echo "Directory exists."
else
    echo "Directory does not exist."
fi

Ao contrário dos colchetes [], [[ fornece mais funcionalidade e flexibilidade e é mais comumente usado em testes condicionais.

ou

if test -d "relative/path/to/directory"; then
    echo "Directory exists."
else
    echo "Directory does not exist."
fi

O comando de teste também pode ser usado diretamente para julgamento condicional.

Nota: Os caminhos nos exemplos acima são caminhos relativos, relativos ao diretório de trabalho atual. Certifique-se de definir o diretório de trabalho ou caminho relativo corretamente em seu script. Se você deseja passar um caminho absoluto ou uma variável de caminho, substitua relativo/caminho/para/diretório pelo caminho da pasta ou variável de caminho que deseja verificar.

3. Determine se as strings são iguais

1. Use sinal de igual duplo  == para comparação:
str1="hello"
str2="world"

if [ "$str1" == "$str2" ]; then
    echo "Strings are equal."
else
    echo "Strings are not equal."
fi

No exemplo acima, estamos comparando as strings str1 e str2. Se as duas strings forem iguais, imprima "Strings are equal."; caso contrário, imprima "Strings are not equal.". Observe que você precisa usar aspas duplas ao redor da variável de string antes e depois do sinal de igual duplo == para evitar erros quando a string contém espaços ou caracteres especiais.

2. Use  = para comparar:
str1="hello"
str2="world"

if [ "$str1" = "$str2" ]; then
    echo "Strings are equal."
else
    echo "Strings are not equal."
fi

Semelhante ao sinal de igual duplo ==, as comparações de strings também podem ser realizadas usando o sinal de igual único =. A função deles é a mesma.
Nota: O sinal de igual = ou o sinal de igual duplo == são operadores usados ​​para comparações de strings no Shell. Não deve ser confundido com o operador de atribuição.

4. Determine se o comando anterior é executado normalmente

1. Determine se o comando anterior é executado normalmente

Em scripts Shell, você pode usar a variável especial $? para determinar se o comando anterior foi executado normalmente. Esta variável contém o código de status de saída do comando anterior.

Normalmente, um código de status de saída 0 será retornado quando o comando for executado com sucesso e um código de status de saída diferente de zero será retornado quando a execução falhar.

command

if [ $? -eq 0 ]; then
    echo "Command executed successfully."
else
    echo "Command failed to execute."
fi

No exemplo acima, o comando comando é executado primeiro. Em seguida,  $? determine se a execução foi bem-sucedida verificando o valor da variável. Se o código de status de saída for 0, imprima "Comando executado com sucesso."; caso contrário, imprima "Comando falhou ao executar.".

Nota: $? O valor da variável representa apenas o código de status de saída do comando anterior, não a mensagem de erro específica.

Se precisar de informações de erro mais detalhadas, você poderá verificar a saída do comando ou redirecionar a saída do comando para um arquivo de log.

2. Obtenha a saída do comando

Em um script shell, existem várias maneiras de obter a saída de um comando:

Use crases  (``) ou  $() operadores:

output=`command`
echo "$output"

ou

output=$(command)
echo "$output"

No exemplo acima, comando é o comando específico a ser executado, que é então  $() agrupado usando crases ou operadores. Isso executará o comando e salvará sua saída na variável de saída. Você pode então usar echo ou outros meios para exibir a saída na variável.

ou

Use símbolos de redirecionamento  >:

command > output.txt

No exemplo acima, comando é o comando específico a ser executado e  > sua saída é redirecionada para o arquivo output.txt usando símbolos de redirecionamento. Usando este método, a saída não será exibida diretamente no terminal.

ou

Use o símbolo de pipe  |:

command1 | command2

Comum:

        ls | grep 'work', verifica se há trabalho no diretório atual

        ps -ef | grep 'com.android', verifique se o Android existe no processo atual

No exemplo acima, a saída do comando1 se tornará a entrada do comando2. Usando o símbolo de barra vertical, você pode passar a saída de um comando para outro comando para processamento. Vários comandos podem ser conectados em um pipeline conforme necessário.

5. Determine se a string está vazia

1. Em um script Shell, para determinar se uma string está vazia, você pode usar o seguinte método:

Usar  -z parâmetros:

str=""

if [ -z "$str" ]; then
    echo "String is empty."
else
    echo "String is not empty."
fi

No exemplo acima, definimos  str a string como uma string vazia. Em seguida, use  -z o parâmetro para verificar se a string está vazia. Se a string estiver vazia, imprima "String está vazia."; caso contrário, imprima "String não está vazia.".

ou

Usar  -n parâmetros:

str=""

if [ -n "$str" ]; then
    echo "String is not empty."
else
    echo "String is empty."
fi

Por  -z outro lado, o uso  -n de parâmetros permite verificar se uma string não está vazia. Se a string não estiver vazia, imprima "String não está vazia."; caso contrário, imprima "String está vazia.".

ou

Use o comprimento da string para comparação:

str=""

if [ ${#str} -eq 0 ]; then
    echo "String is empty."
else
    echo "String is not empty."
fi

${#str} Representa obter  str o comprimento da string. Use  -eq operadores para comparar comprimentos de strings para ver se são zero. Se o comprimento da string for zero, imprima "String está vazia."; caso contrário, imprima "String não está vazia.".

Nota: No exemplo acima, str a variável é uma string vazia. Isso pode ser substituído pela variável de string real a ser verificada.

Acho que você gosta

Origin blog.csdn.net/xch622114/article/details/131443581
Recomendado
Clasificación