我创建了2个bash脚本。如果我跑:
./script2 $1 $2 $3
脚本按预期工作;但是,如果我使用脚本1运行调用脚本2,它似乎失败了。
while read line; do
echo $line > values
name1=$(cat values | tr ';' '\n' | grep -v tftp)
name2=$(cat values | tr ';' '\n' | grep tftp)
echo $name1
echo $name2
./script2 $name1 $name2 $3
done < /home/list
据我所知,在Script2初始化时,脚本2中的命令看起来似乎失败了。我得到以下输出,但它没有显示我的文件传输,而如果我手动初始化script2,我会看到文件传输发生。
blucero@tftp password: spawn scp -r file1 tftp1:.
blucero@tftp password: spawn scp -r file2 tftp1:.
expect -c "spawn scp -r /home/file1 tftp1.$1:. ; expect password: ; send $3\r ; interact ;"
expect -c "spawn scp -r /home/file2 tftp1.$1:. ; expect password: ; send $3\r ; interact ;"
expect -c "spawn scp -r /home/file3 tftp1.$1:. ; expect password: ; send $3\r ; interact ;"
expect -c "spawn scp -r /home/file3 tftp1.$1:. ; expect password: ; send $3\r ; interact ;"
答案 0 :(得分:0)
尝试用引号括起脚本2的参数(在script1 shell脚本中):
./script2 "$name1" "$name2" "$3"
看起来你有特殊的shell字符需要转义。