期待スクリプトの作成に問題があります。次のbashコマンドと同じことをしたいと思います。
iplist=$(cat iplist.txt)
set
私が知っているすべての方法を試してみましたが、まだ効果がありません。他の方法はありますか?それとも正しい方法で使用しないのですか?
set iplist=$(cat iplist.txt)
答え1
ご回答ありがとうございます。他の投稿で解決策を見つけました。set
関数に欠けている唯一のものは "exec"であり、結果として次の行が表示されました。
set iplist [exec cat /root/iplist.txt]
予想していたファイルは問題なくスムーズに進行されました!
答え2
TCLはできるread(n)
ファイルに直接保存することは、特定のコマンドを分岐するよりも効率的で移植性に優れています。
#!/usr/bin/env expect
proc slurp {file} {
set fh [open $file r]
set ret [read $fh]
close $fh
return $ret
}
set iplist [slurp iplist.txt]
puts -nonewline $iplist
これはまた(必要な場合)様々な許容を可能にする。open(n)
またはchan configure
エンコーディング設定など、指定するオプションは次のとおりです。
#!/usr/bin/env expect
package require Tcl 8.5
proc slurp {file {enc utf-8}} {
set fh [open $file r]
chan configure $fh -encoding $enc
set ret [read $fh]
close $fh
return $ret
}
set data [slurp [lindex $argv 0] shiftjis]
chan configure stdout -encoding utf-8
puts $data
次のように保存しreadfile
て入力として提供する場合somefile
:
% file somefile
somefile: DBase 3 data file with memo(s) (1317233283 records)
% xxd somefile
00000000: 8365 8342 8362 834e 838b .e.B.b.N..
% ./readfile somefile
ティックル
%