1.01^365=37.8 0.99^365=0.03
分类: 其他UNIX
2014-02-26 23:30:10
工作要自动调用一个脚本,要在各用户间su来su去,为了让脚本可以自动执行,使用了here document。但是发现在su过用户以后,使用here document的那部分语句使用的变量都失效了,求救。附上示例:
a=10
su - XXXX <
id
a=9
echo $a
ls > test
exit
sp1
echo 'out',$a
使用root用户执行,结果:
daociyiyou
uid=1001(XXXX) gid=....
10
out,10
-------------------------------------
#!/bin/bash
a=10
su - XXXX <
echo 'daociyiyou'
id
a=9
echo "\$a"
ls > test
exit
sp1
echo 'out',$a
----------------------------------------------
echo "\$a" // 当前shell会对 "\$a"进行解析, 然后"\$a"会被解析成 字符串 "$a", shell 将字符串"$a"传递给 su 产生的shell, su 的shell 遇到 echo "$a", 就输出 "9" 了。
总之, "\$a"被两个不同的shell 各解析了一次。