ここで奇妙な状況があります。スクリプト getValue.itcl で exec を実行する必要がありますが、入力リダイレクトを使用してインラインで実行しようとすると出力が得られません。間違った用語を使用している場合は申し訳ありません。
インラインで使用すると、このスクリプトの他の側面に役立ちます。そうしないと、部分を分離する必要があります。そして、私はtcl 8.0を使用しています(オプションはありません)。
例: これは、tclsh として再起動するシェル スクリプトを使用すると機能します。
#!/bin/sh
#
# \
cd 'dirname $0'
# Next line restarts as tclsh \
exec tclsh 'basename $0' $*
proc Main { } {
set val [exec getValue.itcl PARAMETER]
puts "$val"
}
Main
exit
しかし、スクリプトでこれを別の方法で実行すると、機能しません。
これは動作しません:
#!/bin/sh
#
tclsh << EOSCRIPT
set val [exec getValue.itcl PARAMETER]
puts "$val"
EOSCRIPT
exit 0
出力が得られません。単純にコマンドを実行する場合、最初の方法と 2 番目の方法で tclsh を使用することの違いがわかりません。
ありがとう