Como criar um arquivo de script a partir de outro arquivo de script com referência a variáveis?

1

De dentro de um script bash, eu gostaria de criar um arquivo com um determinado conteúdo.
O conteúdo deve conter expressões de variáveis "$ 1", "$ 2" ...

#!/bin/sh
cat < myfile
#!/bin/sh
command1 $1
command2 $2
command3 $3
EOF

O arquivo criado deve ser usado com variáveis:
./myfile param1 param2 param3

Mas myfile aparece sem as variáveis

$ cat myfile  

#!/bin/sh
command1
command2
command3

    
por AJN 28.03.2017 / 13:01

1 resposta

1

O formato correto deve ser:

#!/bin/sh
cat <<EOF > myfile
#!/bin/sh
command1 \
command2 \
command3 \
EOF

Duas alterações foram feitas:

  • escape do $ usando \
  • marque <<EOF no início da seção que deve ser gravada em myfile (consulte aqui para saber mais info)

Depois de executar este script, o resultado de

cat myfile 
#!/bin/sh
command1 $1
command2 $2
command3 $3
    
por 28.03.2017 / 13:19