Chinaunix

标题: su中输出变量无结果!在线等! [打印本页]

作者: taosicai    时间: 2013-08-06 14:33
标题: su中输出变量无结果!在线等!
要获取环境变量INFORMIXSQLHOSTS=/tmp/sqlhosts.a
操作系统aix6.1,代码如下
su - db2inst1 <<EOF
fileName=`env | awk -F= '/INFORMIXSQLHOSTS/{print \$2}`
echo \$fileName
EOF

说明:要使用su - <<EOF这种方法,因为块还有其他命令。
echo $fileName这样无结果,经测试
file="=/tmp/sqlhosts.a"
echo \$fileName
结果就正确,为什么?
{print $2}无论加不加\都取不出结果,我该怎么写?
作者: taosicai    时间: 2013-08-06 14:34
# ksh -vx a.sh
su - db2inst1 <<EOF
fileName=`env | awk -F= '/INFORMIXSQLHOSTS/{print \$2}`
echo \$fileName
EOF
+ su - db2inst1
+ 0<<
fileName=+ env
+ env
+ awk -F= /INFORMIXSQLHOSTS/{print $2}
+ awk -F= /INFORMIXSQLHOSTS/{print $2}

echo $fileName

#
作者: rdcwayx    时间: 2013-08-06 14:40
  1. su - db2inst1 <<EOF
  2. fileName=\`env | awk -F= '/INFORMIXSQLHOSTS/{print \$2}'\`
  3. echo \$fileName
  4. EOF
复制代码

作者: Shell_HAT    时间: 2013-08-06 14:40
  1. su - db2inst1 <<EOF
  2. fileName=\`env | awk -F= '/INFORMIXSQLHOSTS/{print \$2}'\`
  3. echo \$fileName
  4. EOF
复制代码

作者: taosicai    时间: 2013-08-06 14:43
谢谢二位高手,马上去试下。
作者: taosicai    时间: 2013-08-06 15:48
二位大侠真历害,
同时出手,招数一致!

问题解决
重点用\转换,包括$和`等

结贴
作者: davidbeckham921    时间: 2013-08-06 16:11
真速度啊。
作者: taosicai    时间: 2013-08-06 16:20
回复 7# davidbeckham921


    是呀,本版高手如云。
热情周到。

再次

军礼




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2