电商专业学习linux第三天

老师上午给我们讲解了昨天留的五道作业,给我们一一作了演示,而我也默默的按照老师输入的命令一一给记录下来了。然后老师才接着给我们讲后续内容:

作业
1.写一个命令求阶乘或是求和,比如说命令运行:
./xx.sh 6! 如果是这样运行就执行阶乘6x5x4x3x2x1
./xx.sh 6+ 如果是这样运行就执行阶乘6+5+4+3+2+1
//下面是老师给我们留的不正确的答案,可能是老师觉得问题较简单,并没有正面解决这个问题,百度上有求阶乘或是求和的答案
arg1=$1
if [ $# != 1 ]
then
echo "参数过多或过少!!!"
else
arglength=${#arg1}
let start=arglength-1
op=${arg1:start:1}
num=${arg1:0:start}
case $op in
"+")
sum=0
i=1
while [ $i -le $num ]
do
let sum=sum+i
let i++
done
echo "sum=${sum}"
;;
"!")
result=1
i=1
while [ $i -le $num ]
do
let result=result*i
let i++
done
echo "result=${result}"
;;
"*")
echo "usage:./xx.sh 6+  or  ./xx.sh 6!"
;;
esac
fi

3.使用while循环打印如图所示的直角三角形

*
**
***
****
*****
******
row=1
colum=1
while [ $row -le 6 ]
do
colum=1
while [ $colum -le $row ]
do
printf "*"
let colum++
done
printf "\n"
let row++
done

4.打印乘法表
row=1
colum=1
while [ $row -le 9 ]
do
colum=1
while [ $colum -le $row ]
do
printf "%dx%d=%-2d" ${colum} ${row} $((colum*row))
let colum++
done
printf "\n"
let row++
done

5.创建当天文件夹
year=`date +%Y`
mouth=`date +%m`
day=`date +%d`
arg1=$1
if [ $# -eq 0 ]
then
mkdir -p ~/practice/$year/$mouth/$day
echo "${year}文件创建完成!!!"
cd ~/practice/$year/$mouth/$day
elif [ $# -eq 1 ]
then
case $arg1 in
"y")
mkdir -p ~/practice/$year/$mouth/$day
echo "${year}文件创建完成!!!"
cd ~/practice/$year
;;
"m")
mkdir -p ~/practice/$year/$mouth
echo "${mouth}文件创建完成!!!"
cd ~/practice/$year/$mouth
;;
"d")
mkdir -p ~/practice/$year/$mouth/$day
echo "${day}文件创建完成!!!"
cd ~/practice/$year/$mouth/$day
;;
"*")
echo "用法"
echo "1>-y:产生当年文件夹"
echo "2>-m:产生当月文件夹"
echo "3>-d:产生当日文件夹"
;;
esac
else
echo "用法"
echo "1>-y:产生当年文件夹"
echo "2>-m:产生当月文件夹"
echo "3>-d:产生当日文件夹"
fi

接下来就是老师今天讲的新内容,讲的虽然少,但是内容不少,需要消化。

16、数组

1>数组是保存多个变量的一个集合

2>数组的定义

1 array={1 2 3 4 5}

4array1[0]=2
5array1[1]=3
6array1[2]=5
7array1[3]="hello"
9echo "${array1[*]}"


3>数组的输出

2echo "${array[@]}"
3echo "${array[*]}"

4>数组元素的访问

${array[下标]}
下标的范围:0~数组的大小-1
数组元素访问越界,默认值为空

注意点:数组定义可以隔开定义,最好从0开始

17、shell函数

1>什么是函数

函数就是一个包,包代码

案例入门:

1func()
2{
3    i=0
4    while [ $i -le 9 ]
5    do
6       printf "=====\n"
7       let i++
8    done
9}
10func

2>函数存在的意义

1)方便管理,提高代码的重复使用

2)模块性,功能性,提高以后的工作效率

3>函数格式

[functino]functinoname()       \\[function]可有可无

{
语句体
}

4>函数调用

functionname

5>return的作用

1)return代表结束函数的运行,return下面的函数不会被执行

2)将return后面的值返回出去

注意点:return  num出来的值num只能在0-255之间,如果num大于255,那么实际return的结果是num%256;

实在需要返回一个num大于255,用echo,如果想要接受一个echo出来的值,使用``或$()

6>$?的作用

$?是接收最后运行的一个函数返回出来的结果

7>函数接收变量的值

函数内部

$0:./xx.sh
$1:代表函数后面的第一个参数
$2:代表函数后面的第二个参数
···
$n:代表函数后面的第n个参数

当n>=10时,就写为${n}

$#:代表函数后面的参数个数

函数外部

$0:./xx.sh
$1:代表xx.sh后面的第一个参数
$2:代表xx.sh后面的第二个参数
···
$n:代表xx.sh后面的第n个参数
$#:代表命令后面的参数个数

8>函数定义注意点

1)函数内部可以定义函数
2)条件函数根据具体的条件定义
3)怎么保证函数一定调用成功
只要能够保证函数调用之前,只要有这个函数的定义就可以了

unset num:清空

9>如果没有指明某个变量的作用域,那么他的作用域全局的,所有我们一般情况下,如果不希望外面拿到函数内部的值,我们指明这个函数的作用域,用local修饰,代表这个变量只能在这个函数内部使用

作业:

自己写一个mycal命令,最好使用函数

1>mycal,出现当年当月的函数
2>mycal 2016.6出现的2016.6月的日历

3>mycal 2016,显示整年

已知条件

1>1990.1.1是星期一
2>闰年的条件
    1)能被4整除,且不能被100整除
         或者
    2)能被400整除

今天老师讲的内容比较少,应该算作是补充吧,随后老师就给我们留了以上的作业,制作出来就是万年历,据老师说要是能够调用函数只需写一百多行命令就好了,要是不调用函数,那就指不定能不能写完或者什么时候写完了。

通过这三天紧锣密鼓、头脑风暴、爆炸式、醍醐灌顶般的高密度学习,我还只是把这些命令过了一遍,最基本的单个单词单个命令所代表的意思以及输入命令时的语法都没掌握,现在仍是想做作业但不知道如何下手,不知道使用哪些命令语句,现在只想尽快搞明白那些单词的意思和使用的语法。现在感觉门外汉想入门的话难度不是一般的难。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 156,265评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,274评论 1 288
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,087评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,479评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,782评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,218评论 1 207
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,594评论 2 309
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,316评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 33,955评论 1 237
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,274评论 2 240
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,803评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,177评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,732评论 3 229
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 25,953评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,687评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,263评论 2 267
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,189评论 2 258

推荐阅读更多精彩内容

  • 0.linux启动的步骤 设备加电----》BIOS自检-----》grub引导启动-----》加载内核----》...
    萌面大叔2阅读 738评论 0 1
  • shell脚本语句 运算符符 运算符的使用+ - * /1. expr是计算整数类型行的数据2. 运算符左右都要有...
    I踏雪寻梅阅读 328评论 0 2
  • 第一天的学习就遇到了我最为头疼的内容--二进制和十进制 作为一个纯文科出身的我最头疼的就是数字,就是运算,即便他们...
    雨打梨花闭门寒阅读 365评论 4 1
  • 基础命令 主要的命令和快捷键 Linux系统命令由三部分组成:cmd + [options]+[operation...
    485b1aca799e阅读 1,004评论 0 0
  • 你说你会保护我 你说的语气认真眼神诚恳 可是,我的挫折是来自你怎么办 你说,生气时会抱紧我 可是你为什么要让我生气...
    有海的森林阅读 112评论 0 1