unix变量赋值问题?求大神解答!

xiaoshunzi2009 2013-11-12 07:13:39
a=`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur " `
echo "$a"
b=`echo "${a}"|wc -l`
echo "$b"
执行结果:2

c=`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur "|wc -l`
echo "$c"
执行结果为:1

a=`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur " `
echo "$a"
执行结果为:5
5
echo`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur " `
执行结果为:5 5

为什么会有这样的差异?变量的赋值过程是怎么样的?
...全文
126 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoshunzi2009 2013-11-14
  • 打赏
  • 举报
回复
执行结果为: 1 5 2 5
ljc007 2013-11-14
  • 打赏
  • 举报
回复
db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur " > a.txt cat -n -A a.txt 把结果贴出来看看
ljc007 2013-11-14
  • 打赏
  • 举报
回复
方法C和方法D没有双引号,效果相同。
ljc007 2013-11-14
  • 打赏
  • 举报
回复
方法A
a=`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur " `
echo "$a"
方法B
echo "`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur "`"
方法C
a=`db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur " `
echo $a
方法D
echo `db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur "`
方法A和方法B有双引号,效果相同。 方法A和方法B没有双引号,效果相同。 具体原因请参考: http://bbs.chinaunix.net/viewthread.php?tid=218853&page=4#pid1511745
xiaoshunzi2009 2013-11-13
  • 打赏
  • 举报
回复
补充一点: db2 -x "select 5 from syscat.procedures fetch first 2 row only with ur" | wc -l | read a echo "a=${a}" 执行结果: a=2
xiaoshunzi2009 2013-11-13
  • 打赏
  • 举报
回复
但是第一个也是得出行数,只是分为两步了,为什么结果不一样??
iasky 2013-11-12
  • 打赏
  • 举报
回复
你第二个是执行了wc -l计算行数的。

23,125

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧