私はこの困難なコードの塊を持っています:
exec zip -r $FULLPATH error.log [ append datetime $RECENT ".bwdb" ] [ append txt $testName ".txt" ] [ append lancap $testName "-lan.cap" ] \
[ append lanmcap $testName "-lan-m.cap" ] [ append wancap $testName "-wan.cap" ] [ append wanmcap $testName "-wan-m.cap" ] [ append conf $confFile ".conf" ] \
start.txt start-lan.cap start-lan-m.cap start-wan.cap start-wan-m.cap [ append comments "comments-" $RECENT ".bwc" ]
実際には、一連のファイルをまとめて圧縮しているだけです。zip ファイルの生成方法を変更しています (より正確には、生成時に変更しています)。私が決めた方法は、すべてのコマンドをテキスト ファイルに保存し、作成する必要があるときにファイル内のすべてのコマンドを実行することです。問題は、リテラル形式に変換する必要がある変数がたくさんあることです。
このコマンドをリテラル値に変換してテキスト ファイルに保存する方法を知っている人はいますか?
編集:同じ問題を解決する他の提案、および/または私が提案している方法でそれを行う際の長所/短所も喜んで聞きます。
Edit2:すべての助けをありがとう、私はこれを行うことにしました:
set data123 "exec zip -r $FULLPATH error.log [ append datetime $RECENT \".bwdb\" ] [ append txt $testName \".txt\" ] [ append lancap $testName \"-lan.cap\" ] \
[ append lanmcap $testName \"-lan-m.cap\" ] [ append wancap $testName \"-wan.cap\" ] [ append wanmcap $testName \"-wan-m.cap\" ] [ append conf $confFile \".conf\" ] \
start.txt start-lan.cap start-lan-m.cap start-wan.cap start-wan-m.cap [ append comments \"comments-\" $RECENT \".bwc\" ]"
set datafile123 "datafile123.txt"
set fileId123 [ open $datafile123 "w" ]
puts $fileId123 $data123
close $fileId123
ただし、結果のファイルを見ると、次のように表示されます。
exec zip -r /home/IOL/TR069_Certification/Results/TEST_Round99_GetRPCMethods_CDR1_20130410172812 error.log 20130410172812.bwdb20130410172812".bwdb" GetRPCMethods.txtGetRPCMethods".txt" GetRPCMethods-lan.capGetRPCMethods"-lan.cap" GetRPCMethods-lan-m.capGetRPCMethods"-lan-m.cap" GetRPCMethods-wan.capGetRPCMethods"-wan.cap" GetRPCMethods-wan-m.capGetRPCMethods"-wan-m.cap" IOL.confIOL".conf" start.txt start-lan.cap start-lan-m.cap start-wan.cap start-wan-m.cap comments-20130410172812.bwc"comments-"20130410172812".bwc"
各追加の最後に連結された文字列の2番目のコピーを作成しているように見えますが、その理由はわかりません。