一个很简单的Shell,谢谢

Youloveme 2003-04-29 11:11:08
rq= date +%y%m%d;
echo $rq;
test=/usr/$rq.log;
echo $test;

我的目得是想输出:/usr/030429.log

可是输出却是:/usr/.log

怎么该?
...全文
46 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
wake2000 2003-04-29
  • 打赏
  • 举报
回复
rq=`date +%y%m%d`;
echo $rq;
test=/usr/$rq.log;
echo $test;

你的第一行就有错误,要赋值给rq,就要用 ` 号(反单引号)将date命令括起来,

当你原来调试时,出现的date其实不是 echo $rq出来的,而是 第一行的date 打印出来的,实际上rq还是空的,所以$test出现 /usr/.log就不奇怪了。

建议写成如下:

RQ=`date +%y%m%d`;
echo ${RQ};
TEST=/usr/$rq.log;
echo ${TEST};

unix中有一个系统命令就是test,所以建议你写程序或者变量时不要用test,要不然会有很奇怪的错误了。

23,121

社区成员

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

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