如何在 echo 语句中使用 for 循环,该语句用于将语句打印到 UNIX 中的另一个脚本中

如何在 echo 语句中使用 for 循环,该语句用于将语句打印到 UNIX 中的另一个脚本中

我的 shell 脚本包含一个用于将语句打印到另一个 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
}

变量$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 只有一个值,脚本可以进一步简化

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

相关内容