UNIXでステートメントを別のスクリプトに印刷するために使用されるechoステートメントのforループを使用する方法

UNIXでステートメントを別のスクリプトに印刷するために使用されるechoステートメントのforループを使用する方法

私のシェルスクリプトには、文を別のシェルスクリプトに出力する関数が含まれています。

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

変数 $InsertFile1 = file1.txt, file1.txt の内容は次のとおりです。

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

Script.shで予想される出力は$ InsertFile1変数の内容でなければなりませんが、私の出力(Script.shの内容など)は次のようになります。

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

Script.shファイルでforループ印刷をスキップするには?編集:print関数には、Script.shに含める必要がある他のいくつかのステートメントが含まれています。

答え1

努力する

function print()
    {

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

    }
  • echo Exit を使用して行をスキップできます。
  • $ Insertfile1に値が1つしかない場合は、スクリプトをさらに簡素化できます。

    function print()
    {
    
    cp $Inserfile   Script.sh
    
    echo "Exit--------------------------0" >> Script.sh
    
    }
    

関連情報