bash语言学习

本文分享了在Mac平台上使用bash进行iOS游戏开发的经验,涉及变量操作、流程结构及cocos2dx事件机制的学习。通过实践案例,深入浅出地介绍了bash的基本用法与cocos2dx中事件分发器的应用。

===============================bash=================================

无奈转到了mac平台开发ios游戏,结果对于mac终端了解太少。很不甘心,就学习了一下。

1.还是svn命令行

2.平常的os操作,或者项目的编译。

3.现在我仅仅说自己对bash的学习


变量操作加$

比如我操作一个x变量,声明直接赋值就行啦,压根就没有类型的概念。

x=123

这里的=两边没有空格是需要注意的,不然说语法错误。


echo就和print输出一样的道理

echo x就会输出 123


还学了点输入输出重定向,现在忘光啦。符号太多,记不住。


再者就是流程结构


if [ x -gt 10 ]

then

echo x

fi


这个if分支是记得最清楚的。使用还是很好使用的,不过常用的bash变量是

整数 字符串 文件

把这三种类型整熟练了估计bash也就算入门了。


while 和 for 现在竟然忘了,苍天。看来这科学笔记不记真的不知道没有掌握牢靠呀。


==============================cocos2dx==================================

我也不去装蛋说自己很牛气啦,就说实在的。cocos2dx的事件机制。

很多书和网页都有提及,我说的是v3.1.1版本里面的事件机制。cocos2dx版本太混乱了,整的不说清楚又乱套了。

事件分发器将事件发送到事件监听器。


事件分发器在哪儿,在导演类里面持有这么一个对象,然后所有的node类在初始化的时候持有一个引用,重要的事情要重申一遍。

在node类的构造函数里面持有事件分发器的引用,这样node类家族就可以无底线的向事件分发器注册监听器了。

当然,事件监听器就是监听事件发生执行相应的函数的。看了很多网页和书,都会说一大通,不过每个人都会突然醒悟,我就是在node初始化的时候看见

_dispatcher = CCDirector::shareDirector()->getDispatcher();

才突然醒悟的。


至于其他的,还有类似的处理也是在构造函数里面完成的,定时器和动作管理器。不过动作管理器我没有找到初始的入口点。定时器倒是在导演类里面持有一个对象,

料想和事件分发器差不多。


<think>我们正在回答用户关于Bash循环语法的问题。用户希望了解Bash中循环的语法和示例。根据引用资料,Bash主要有三种循环结构:for循环、while循环和until循环。同时,我们还可以使用break和continue来控制循环。引用[5]提到:Bash语言是Linux和Unix系统中一种非常流行的脚本语言...循环是一种重要的控制结构,包括while循环、for循环、until循环等。引用[2]提到:bash学习之循环语句(四)。bash语法有for,while,until三种格式的循环语句,并且break,contine也是相通的。我们将按照以下结构组织回答:1.for循环的两种风格(类似C语言风格和类似Python风格)2.while循环3.until循环4.循环控制(break和continue)同时,我们将提供一些示例代码(注意:在回答中,代码块使用三个反引号包围,并指定语言为bash)。注意:用户要求使用中文回答,并且要求生成相关问题。我们参考的引用内容:[^1]:提供了for循环的一种基本语法(列举值)。[^2]:提供了for循环的两种风格示例(C语言风格和类似Python风格)以及一个for循环遍历字符串的例子。[^3]:提供了while循环的示例,包括一行写法和无限循环。[^4]:提供了for-in循环的示例,包括遍历数字序列和字符串。[^5]:介绍了Bash循环的基本概念。下面开始组织回答:</think>### Bash 循环语法详解 Bash 提供三种循环结构:`for`、`while` 和 `until`,支持循环控制符 `break` 和 `continue`。以下为语法及示例: #### 1. **`for` 循环** - **遍历列表**: ```bash for var in item1 item2 ... itemN do command1 command2 done ``` **示例**: ```bash # 遍历数字列表 for num in 1 2 3 4 5 do echo $num done # 遍历字符串(含空格需引号) for str in "Hello" World "Bash Loop" do echo "$str" done ``` 输出: ``` 1 2 3 Hello World Bash Loop ``` - **类 C 风格**: ```bash for (( init; condition; step )) do commands done ``` **示例**: ```bash for (( i=1; i<=3; i++ )) do echo "Count: $i" done ``` 输出: ``` Count: 1 Count: 2 Count: 3 ``` #### 2. **`while` 循环** 条件为真时循环: ```bash while [ condition ] do commands done ``` **示例**: ```bash # 计数器循环 count=1 while [ $count -le 3 ] do echo "Counter: $count" ((count++)) done # 无限循环(需手动终止) while true do echo "Press Ctrl+C to exit" sleep 1 done ``` 输出: ``` Counter: 1 Counter: 2 Counter: 3 ``` #### 3. **`until` 循环** 条件为假时循环(与 `while` 逻辑相反): ```bash until [ condition ] do commands done ``` **示例**: ```bash num=5 until [ $num -eq 0 ] do echo "Countdown: $num" ((num--)) done ``` 输出: ``` Countdown: 5 Countdown: 4 ... Countdown: 1 ``` #### 4. **循环控制** - `break`:跳出当前循环 ```bash for i in {1..10}; do if [ $i -eq 5 ]; then break fi echo $i done # 输出:1 2 3 4 ``` - `continue`:跳过当前迭代 ```bash for i in {1..5}; do if [ $i -eq 3 ]; then continue fi echo $i done # 输出:1 2 4 5 ``` ### 关键语法说明 - **列表生成**: - 数字序列:`{1..5}` 或 `$(seq 5)` - 命令输出:`` for file in `ls *.txt` `` - **条件表达式**: - 数字比较:`[ $a -lt 10 ]`(小于) - 字符串比较:`[ "$str" = "hello" ]` - **一行写法**: ```bash for i in {1..3}; do echo $i; done while true; do echo "Loop"; sleep 1; done ``` > 引用参考: > Bash 的 `for` 循环支持直接遍历列表或类 C 风格迭代[^2][^4]。 > `while` 和 `until` 通过条件表达式控制循环流程[^3][^5]。 > `break` 和 `continue` 可中断或跳过循环迭代[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

当当小螳螂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值