Declarando uma variável que não possui entrada

1

Eu gostaria de poder recuperar a entrada do meu histórico do shell para definir variáveis dentro do meu script. Eu gostaria de usar essas variáveis em um loop if, mas não consigo definir corretamente a variável.

Etapa de entrada: Minha entrada inicial viria pela linha de comando. Abaixo estão algumas possibilidades.

-> string
-> string AA
-> string 99

Esta string está vinculada a um alias que inicia meu script. A principal função do meu script está abaixo.

inputsubstring()
{
strings /user/.sh_history | grep '^\string' | tail -1 | cut -d' ' -f2
}

Então, inicialmente, eu pegaria uma string parecida com a seguinte:

substring
substring AA
substring 99

Como estou usando o comando cut no final da função, eu teoricamente recebo a seguinte saída.

AA
99

Agora, definir a variável para o comando acima funciona para a saída alfanumérica, mas não funciona bem para a sequência sem o segundo campo. Na verdade, não consigo defini-lo. A execução do script com a string problemática realmente ecoa informações sobre o último valor alfanumérico. Como eu faria isso funcionar?

Eu tentei criar outro valor como este:

secondvar=${first:-default}

Mas isso não funcionou.

Além disso: Eu tentei usar comprimento de cadeia e atribuição de variável, mas isso não funcionou. O que devo fazer?

ATUALIZAÇÃO: Como eu só preciso obter "string" por si só uma certa quantidade de vezes, fiz uma função separada envolvendo concatenar meu histórico e ver a última entrada.

laststring()
{
cat /user/history | tail -1
}
    
por poisonjam 03.12.2017 / 17:57

1 resposta

0

Você pode usar o comando history para procurar o comando desejado e atribuir uma variável como esta.

Se você executou ls e o histórico mostrou que esse comando é o número 99, você o atribuiu a uma variável como esta:

var=!99
    
por 04.12.2017 / 00:25

Tags