将值从一个shell脚本传递给另一个

时间:2013-05-13 15:05:06

标签: linux shell unix aix

这就是我正在尝试的

SCRIPT1

var=10
sh -x script2 "$var"

SCRIPT2

su - someuser << EOF
1
cd dir
echo "This is : $1 Error" >> somefile
2
2
0
exit
EOF

script2中的所有内容都在执行。当我检查文件“somefile”时,输出是

This is :  Error

未显示var

的值

1 个答案:

答案 0 :(得分:0)

它对我来说很好:

cat s1
var=10
sh -x /tmp/s2 "$var"

cat s2
su - my_id << EOF
id
echo $1
EOF

./s1
+ su - my_id
+ 0<<
id
echo 10
my_id's Password: <<< su is prompting for my password
uid=222(my_id) gid=222(my_group) ...
10

因为你没有添加#!/ bin / xxxxx,我认为默认是执行/ bin / sh或者可能是$ SHELL设置的。检查这两个是否符合您的期望。也许添加显式的#!/ bin / ksh(或#!/ bin / sh ...)以确保你得到你想要/期望的shell。