免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2100 | 回复: 7
打印 上一主题 下一主题

请教关于expr的用法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-13 02:54 |只看该作者 |倒序浏览
操作步骤如下:

1. vi test

2. for i in 1 2 3 4 5 6
     do
         s='expr $i +1'
         echo "$i $s"
     done
3. chmod +x test
4. sh test

执行后结果是
1 expr $i + 1
2 expr $i + 1
3 expr $i + 1
4 expr $i + 1
5 expr $i + 1
6 expr $i + 1

我的运行环境有 sco 5.06 和 soloris 9

请问高手,为何会这样?照道理用单引号‘’中的命令可以执行的
为何不对?请帮忙解释一下,谢谢!!!

论坛徽章:
0
2 [报告]
发表于 2005-05-13 08:10 |只看该作者

请教关于expr的用法

单引号用错了,应该用重音符,在ESC下面的那个`,不是分号右边的'。

论坛徽章:
0
3 [报告]
发表于 2005-05-13 13:42 |只看该作者

请教关于expr的用法

应该这样 s='expr $i  + 1 '  中间加空格

论坛徽章:
0
4 [报告]
发表于 2005-05-13 14:23 |只看该作者

请教关于expr的用法

二楼的大大都告诉你了,把你那个引号改为反引号即:s=`expr $i+1`或者s=$(($i+1))

论坛徽章:
0
5 [报告]
发表于 2005-05-13 15:16 |只看该作者

请教关于expr的用法

#!/bin/bash
for i in 1 2 3 4 5 6
do
s="expr $(($i+1))"
echo "$i $s"
done


注解:   区分""和''的不同,""中的$不改变原意,而在''中就变成了普通字符,还有对于expr的用法是: expr $((表达式)).
  共同学习吧.

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
6 [报告]
发表于 2005-05-13 16:37 |只看该作者

请教关于expr的用法

for i in 1 2 3 4 5 6;do ((++i));echo $i;done

论坛徽章:
0
7 [报告]
发表于 2005-05-13 16:43 |只看该作者

请教关于expr的用法

[quote="lych"]二楼的大大都告诉你了,把你那个引号改为反引号即:s=`expr $i+1`quote]

论坛徽章:
0
8 [报告]
发表于 2005-05-13 22:46 |只看该作者

请教关于expr的用法

非常感谢,哈哈!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP