Shell 在攻击变量时删除前导\n
我在shell脚本中有一个DB2查询,它返回一个整数值,但我无法将其存储在变量中 temp1=echoShell 在攻击变量时删除前导\n,shell,db2,newline,Shell,Db2,Newline,我在shell脚本中有一个DB2查询,它返回一个整数值,但我无法将其存储在变量中 temp1=echodb2-x“从work.work\u tb中选择max(id)” 我在运行它时得到这个输出,sh-x test.sh db2-x从work.work\u tb中选择max(id) 回声50 temp1= 五十 因此,出于某种原因,$temp1无法获取该值,我认为这是因为db2查询返回了前缀为\n的值。如何去掉换行符并将值获取到temp1 emp1=$(echo db2 -x "select
db2-x“从work.work\u tb中选择max(id)”
我在运行它时得到这个输出,sh-x test.sh
- db2-x从work.work\u tb中选择max(id)
- 回声50
- temp1= 五十
emp1=$(echo db2 -x "select max(id) from work.work_tb")
或者使用反勾号
emp1=`echo db2 -x "select max(id) from work.work_tb"`
通常,要删除换行符,可以将其传递给tr/sed
等工具
... | tr -d "\n"
不,这不是原因
temp1=`db2 -x "select max(id) from work.work_tb"`
50将出现在下一行temp1=\n 50works现在,我正在使用temp1=echo
db2-x“select max(id)from work.work\u tb”
实际上,在您的问题中,在=
和echo
之间有一个空格,这意味着$temp1
在运行echo
之前设置为空,导致您看到的输出。