Como posso mesclar 3 comandos e executá-los?

0

Eu tento executar um script que descobre os caminhos com base no nome do host: por exemplo. Se hostname retornar computer1 , eu gostaria de executar path/to/Computer1.py (onde path / to é um caminho que sempre será o mesmo).

A parte do caminho eu percebi que eu poderia usar uma variável para armazená-lo, então lembre-se e concatenar mais tarde. Eu olhei para cima agora para converter uma string para o título e isso parece funcionar:

echo "computer1.py" | awk '{printf("%s%s\n",toupper(substr($0,1,1)),substr($0,2))}'

Sou relativamente novo no bash e atualmente estou ficando preso em como concatenar esses componentes (caminho para script, nome do script baseado em hostname ) e executá-los.

    
por George Profenza 30.08.2015 / 20:12

1 resposta

3

A versão 4 do Bash introduziu operadores internos de modificação de casos ^ e , operadores, tornando possível evitar programas externos como o awk para manipulações simples de strings se você tiver uma versão recente do bash shell. Em particular, se

name=$(hostname)

e

path="path/to/"

então

"${path}${name^}"

deve concatenar as strings, com a primeira letra de name upper-cased. Veja a seção Parameter Expansion da página de manual do bash man bash .

    
por 30.08.2015 / 20:29