Eu sou interessante em direcionar a saída de dois comandos para uma variável. Eu não quero que a saída seja exibida na tela, mas atribuída a uma variável dentro do meu script para que eu possa usá-lo novamente.
o que estou fazendo é obter o tamanho do arquivo de um diretório usando os comandos abaixo:
ls -l /var/spool | wc -c
Este comando fornece o tamanho do arquivo em bytes e exibe a saída como um número inteiro. Estou interessado em obter esse número inteiro atribuído a uma variável do meu gosto para que eu possa compará-lo com outra variável posteriormente
Isso não parece funcionar:
size = ls -l /var/spool | wc -c
O redirecionamento funcionaria?
Como isso....
ls -l /var/spool | wc -c > size
De qualquer maneira, quero que essa saída numérica seja atribuída a uma variável e não seja exibida na tela.
Todas as sugestões são muito bem-vindas!
fonte
size=`ls -l /var/spool | wc -c`
. use este formato na sua resposta: "` `size =` ls -l / var / spool | wc -c` `` "sem aspas;)$()
pelos motivos explicados aqui: stackoverflow.com/a/9449788/2907484 :-) #ls -l /var/spool | wc -c > size_file
, você poderiaread size_var < size_file
. (2) Veja também O $ () sempre pode substituir backticks para substituição de comando?Prefiro a solução oferecida pela resposta da Rmano , mas se você quiser usar apenas o redirecionamento:
fonte
set -e
,set -o pipefail
, etc.). Portanto, se você usar$(…)
seu script, sempre continuará, enquanto o redirecionamento poderá ser configurado para falhar. (que pode ser o que você deseja ou não).