私のシェルスクリプトには、文を別のシェルスクリプトに出力する関数が含まれています。
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 }