cygwin 32bitを使用するとv5.45が必要です(最新のcygwinに付属しているようです)。複数のコマンドライン引数を1つの変数に受け入れることができません
COMMAND="$WIN_BUILD_ROOT\\scripts\\signBinaries.bat $BUS $NET_DRIVE $WIN_SIGNING_ROOT"
$CLIENT_BUILD_ROOT/scripts/runCommand.sh $arg1 $arg2 $arg3 $arg4 $COMMAND
runCommand.sh:
#!C:\cygwin\bin\expect.exe -f
set timeout 9
set arg1 [lindex $argv 0]
set arg2 [lindex $argv 1]
set arg3 [lindex $argv 2]
set arg4 [lindex $argv 3]
set COMMAND [lrange $argv 4 end]
send -- "$COMMAND\r"
は私を与える:
{s:\git\builds\scripts\signBinaries.bat} 64 s {s:\git\builds\}
The filename, directory name, or volume label syntax is incorrect.
シナリオがあり、最初の4つの引数が固定されています。それから私は期待通りに実行される1つのコマンドとして、それらの後ろに可変数のコマンドを置くことができます。 [lindex argv 4]
をちょうど使用すると、引用符で囲まれているかどうかにかかわらず、signBinaries
のスクリプト名しか取得できません。代わりにlrange
(グーグル検索)を使用すると、図のように、文字列引数を中括弧で囲んでいます。どうしてこの方法で私の議論を修正しているのですか?$COMMAND
に私が意図したようなコマンドが含まれるように修正するには?