免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: linux飞翔
打印 上一主题 下一主题

shell编程问题,在线等 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-04-24 15:31 |显示全部楼层
1. 這個問題在 linux 版系統篇來問似乎比較適合.

2. bash 內您的 for 語法使用錯誤。for 語法例子使用像是有:


  1. for i in 1 2 3 4 5
  2. do
  3.    echo $i
  4. done
复制代码


  1. for((i=0;i<10;i++))
  2. do
  3.     echo $i
  4. done
复制代码


--

论坛徽章:
0
2 [报告]
发表于 2008-04-24 15:45 |显示全部楼层
原帖由 linux飞翔 于 2008-4-24 15:37 发表
现在就简单点
#!/bin/bash
i=$(rsync  -avl --include "*/" --include "GameLog.ini" --exclude "*" /usr/richman/rich/gs1-game/ /usr/richman/GameLog | echo $?)
if $i=0


剛剛是 for, 目前又來一個 if ?

建議這位大哥先去翻一下 bash 文件,先把基本的語法弄懂似乎比較好呢  

--

论坛徽章:
0
3 [报告]
发表于 2008-04-24 15:53 |显示全部楼层
原帖由 linux飞翔 于 2008-4-24 15:48 发表
楼上的老大,不是我说你,你水平很高吗,我现在求救,你说for不行,我就换if,按你说的还不行?
再说for也行


這位朋友您似乎不大客氣哦.... 不都提供 for 正確用法嗎,再者這些東西不是應該先自己看一下 manpage or google 一下就知道答案呼?


  1. $help
  2. for: for NAME [in WORDS ... ;] do COMMANDS; done
  3.      The `for' loop executes a sequence of commands for each member in a
  4.     list of items.  If `in WORDS ...;' is not present, then `in "$@"' is
  5.     assumed.  For each element in WORDS, NAME is set to that element, and
  6.     the COMMANDS are executed.
  7. for ((: for (( exp1; exp2; exp3 )); do COMMANDS; done
  8.      Equivalent to
  9.         (( EXP1 ))
  10.         while (( EXP2 )); do
  11.                 COMMANDS
  12.                 (( EXP3 ))
  13.         done
  14.     EXP1, EXP2, and EXP3 are arithmetic expressions.  If any expression is
  15.     omitted, it behaves as if it evaluates to 1.

复制代码


若您真的不大會用,請看一下基本教程也可以,比方 Bash Programming Intro HOWTO

http://tldp.org/HOWTO/Bash-Prog-Intro-HOWTO.html

--

论坛徽章:
0
4 [报告]
发表于 2008-04-24 15:56 |显示全部楼层
原帖由 linux飞翔 于 2008-4-24 15:49 发表
不是你说的问题,if [ $i=0 ]
可以写成if $i=0的
再说你先定义完了,还要if干啥


這位朋友您今天吃火藥了是嗎?

首先您這語法是錯誤的:

  1. if [ $i=0 ]
复制代码


正確語法應該是:

  1. if [ $i = 0 ]
复制代码


= 可以用 ==,另外數值比較可以寫成:

  1. if [ $i -eq 0 ]
复制代码


--

论坛徽章:
0
5 [报告]
发表于 2008-04-24 16:00 |显示全部楼层
原帖由 linux飞翔 于 2008-4-24 15:57 发表
要是知道google答案的话还来论坛发帖子啊,论坛不就是求救和讨论的地方,我错了...谢谢


是,您是可以討論,不過基本的語法在手冊內與 google 都可以找到.

--

论坛徽章:
0
6 [报告]
发表于 2008-04-24 16:18 |显示全部楼层
原帖由 incle 于 2008-4-24 16:12 发表
if [ $i=0 ] 是可以的,我事先跑过的. 不过严格来讲养成按照你的用法是比较好的习惯.


這不一樣意思,而且十萬八千里呢....


  1. SayyaBBS:kendlee@~> a=0
  2. SayyaBBS:kendlee@~>
  3. SayyaBBS:kendlee@~> if [ $a=0 ]; then echo yes; fi
  4. yes
  5. SayyaBBS:kendlee@~>
  6. SayyaBBS:kendlee@~> if [ $a = 0 ]; then echo yes; fi
  7. yes
复制代码


  1. SayyaBBS:kendlee@~> a=100
  2. SayyaBBS:kendlee@~>
  3. SayyaBBS:kendlee@~> if [ $a=0 ]; then echo yes; fi
  4. yes
  5. SayyaBBS:kendlee@~>
  6. SayyaBBS:kendlee@~> if [ $a = 0 ]; then echo yes; fi
  7. SayyaBBS:kendlee@~>
复制代码


--

评分

参与人数 1可用积分 +9 收起 理由
MMMIX + 9 从来不清楚还有这个区别...

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP