Linux基础——控制语句(四)shell数组与shell函数

shell数组

没有数据类型,只有一维数组
数组的初始化
数组名=(元素1 元素2 元素3 .。。。)
数组的调用:
${数组名【元素下标】}–下标从0开始
数组的长度:

${#数组名【*】}

数组的全部元素访问:${数组名【@】}或者${数组名【*】}

#!/bin/bash

ARR=(hello world nihao shijie)

echo ${ARR[2]}
echo ${#ARR[@]}
echo ${ARR[*]}

练习:数组的遍历

#!/bin/bash

ARR=(hello world nihao shijie)
ARR[2]="zhangcheng"
echo ${#ARR[2]}
for((i=0;i<${#ARR[*]};i++))
do
	echo ${ARR[i]}
done

shell函数

定义

function 函数名()
{
	函数体
}
	函数名()
{
	函数体
}

函数没有数据类型,没有形参,但是可以传参,用$1 $2…依次接受实际参数
函数里面定义的变量都是全局变量,但是需要调用函数,使该变量生效,如果要用局部变量,需要用local定义
返回值:可以有返回值,用$?来接受返回值
$?取值范围:0~255,超过取值范围又重新从0开始
传参方式:在函数名后面写需要传递的实际参数,实参之间需要空开
函数名 实参1 实参2

#!/bin/bash

function zc()
{
	echo $1
	echo $2
	echo "hello world"
}

day3()
{
	local a=257
	echo $a
	echo "nihao"
	return $a
}
zc
day3
echo $?

练习:写一个交换函数

day3()
{
	a=12
	b=34
	temp=$a
	a=$b
	b=$temp
	echo $a
	echo $b

}
day3

作业

复习前面到现在
用shell脚本打印100-1000的水仙花数
例如:
153=13+53+33
2、有一个游戏,取一个花色的所有13张扑克牌,成为一摞,按照如下的规则取牌:
(1)将最上面一张牌放到这一摞牌的最下面
(2)然后将最上面的一张牌取出
以后不断重复1,2的动作,直到所有的扑克牌取完为止。
问题:如果要使得取出扑克牌的顺序为从小到大,即顺序为:A、2、3、4、5、6、7、8、9、10、J、Q、K,请使用C/C++编程求出最初扑克牌的顺序应该是什么。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

磁铁的朋友

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

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

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

打赏作者

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

抵扣说明:

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

余额充值