bash脚本,包含多个脚本

时间:2013-11-23 06:35:04

标签: linux bash shell

我创建了2个bash脚本。如果我跑:

./script2 $1 $2 $3

脚本按预期工作;但是,如果我使用脚本1运行调用脚本2,它似乎失败了。

SCRIPT1

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:.

Script2只是一系列文件传输到各种tftp框

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 ;"

1 个答案:

答案 0 :(得分:0)

尝试用引号括起脚本2的参数(在script1 shell脚本中):

./script2 "$name1" "$name2" "$3"

看起来你有特殊的shell字符需要转义。