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
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
}
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
Tags variable