Como usar um loop for dentro de uma instrução echo que é usada para imprimir instruções em outro script no UNIX

0

Meu script de shell contém uma função que é usada para imprimir instruções para outro script de shell

    function print()
    {
    echo "
    insert()          #insert function
    for i in $InsertFile1
    do
    cat $i 
    done
    echo \""Exit--------------------------0"\"
    switch($input)
    {
     case 1 :
     ......
     ......
     default :
    }
    " > Script.sh

    }

A variável $ InsertFile1 = file1.txt e o conteúdo do file1.txt são os seguintes:

função insert () #insert echo "1 Iniciar" echo "2 Stop" echo "3 Exit" interruptor (entrada $)     {      caso 1 :      ......      ......      padrão :     }

A saída esperada deve em Script.sh deve ser o conteúdo da variável $ InsertFile1 mas minha saída (ou seja, o conteúdo do Script.sh) é

 insert()          #insert function
    for i in echo "1    Start"
    echo "2 Stop"
    echo "3 Exit"
    switch($input)
        {
         case 1 :
         ......
         ......
         default :
        }

Como faço para pular a impressão de loop no arquivo Script.sh? edit: A função print contém várias outras instruções que precisam ser incluídas no Script.sh.

    
por dragonfire_007 20.07.2016 / 13:02

1 resposta

0

tente

function print()
    {

    for i in $InsertFile1
    do
    cat $i 
    done > Script.sh
    echo "Exit--------------------------0" >> Script.sh

    }
  • você pode pular a linha com echo Sair
  • se $ Insertfile1 tiver apenas um valor, o script poderá ser simplificado ainda mais

    function print()
    {
    
    cp $Inserfile   Script.sh
    
    echo "Exit--------------------------0" >> Script.sh
    
    }
    
por 20.07.2016 / 13:14