./Myscript.sh "$(cat text.txt)"
Suponha que eu tenha um script de shell bash chamado Myscript.sh
que precisa de um argumento como entrada.
Mas quero que o conteúdo do arquivo de texto chamado text.txt
seja esse argumento.
Eu tentei isso, mas não funciona:
cat text.txt | ./Myscript.sh
Existe uma maneira de fazer isso?
./Myscript.sh "$(cat text.txt)"
Você pode usar saída de pipe como um argumento de script de shell.
Experimente este método:
cat text.txt | xargs -I {} ./Myscript.sh {}
Se você tiver mais de um comando no arquivo, considere usar xargs ou paralelo , por exemplo
xargs -d '\n' Myscript.sh < text.txt
parallel -j4 Myscript.sh < text.txt
Tente,
$ cat comli.txt
date
who
screen
wget
$ cat comli.sh
#!/bin/bash
which $1
$ for i in 'cat comli.txt' ; do ./comli.sh $i ; done
para que você possa inserir os valores um por um para comli.sh
de comli.txt
.