当前位置: 代码迷 >> 其他开发语言 >> shell中echo不出来的有关问题
  详细解决方案

shell中echo不出来的有关问题

热度:2543   发布时间:2013-02-26 00:00:00.0
shell中echo不出来的问题
_date=$1
_YYMMDD=`echo $_date|awk {nb=substr($1,3,6)}` (记不清了,大概是这么写。
echo $_YYMMDD 
上面这个echo 是可以出来如090801的字符
我模仿这样写
_date=$1
_YYMMDD=`echo $_date|awk {nb=substr($1,3,6)}` (记不清了,大概是这么写。
_dddd=`echo $_date|awk {nb=substr($2,3,6)}` (传入2个参数)
echo $_YYMMDD 
echo $_dddd

.........
get *$_dddd.txt
.......
结果*$_dddd.txt的文件正确获取,但是echo $_dddd是空行,不知道是为什么。
请帮忙解答,谢谢啦


------解决方案--------------------------------------------------------
_dddd=`echo $_date|awk {nb=substr($2,3,6)}` (传入2个参数) 

那里有两个参数?传给substr的还是只有echo $_date的输出这一个column。
这样测试一下:
_dddd=`echo $_date $_date|awk {nb=substr($2,3,6)}`

------解决方案--------------------------------------------------------
“shell有2个参数”有什么用?
前面都_date=$1 了,echo $_date出去的还是第一个。

------解决方案--------------------------------------------------------
substr($2,3,6)这个$2不是传给shell script的第二个参数,只是传给awk脚本的参数,也就是通过pipe传过去的echo $_date的输出的第二栏。

按照你的想法,应该这样写:
_date=$1
_date2=$2
_YYMMDD=`echo $_date|awk {nb=substr($1,3,6)}`
_dddd=`echo $_date2|awk {nb=substr($1,3,6)}`
echo $_YYMMDD
echo $_dddd 
...
  相关解决方案