shell 入门 Linux 学习

shell编程

在Linux中,Shell不但能与用户进行逐个命令交互执行,也可以通过脚本语言进行编程。

第一个shell程序
1、写shell程序
用vim打开并建立一个shell文件,开头固定 #!/bin/bash,表示用的是 bash 语法,# 后面为注释,date 显示日期,echo 打印字符串

[zcy@zcy ~]$ mkdir myprogram
[zcy@zcy ~]$ cd myprogram/
[zcy@zcy myprogram]$ vim first.sh
#!/bin/bash
#This is my first sh
date
echo "hello world!"
[zcy@zcy myprogram]$ echo $SHELL
/bin/bash
//默认的shell为 bash
[zcy@zcy myprogram]$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
//查看系统内置了那几种shell

2、运行shell程序
第一种 直接运行
#/usr/program/first

使用这种方法时,需首先设置该文件的执行权限。
如果执行当前目录下的脚本文件,通常也应该使用一个点表示当前目录,如执行当前目录下的脚本文件test,可使用命令:# ./test

[zcy@zcy myprogram]$ chmod a+x first.sh
[zcy@zcy myprogram]$ ll first.sh
-rwxrwxr-x. 1 zcy zcy 58 66 19:43 first.sh
[zcy@zcy myprogram]$ ./first.sh
20200606日 星期六 19:43:42 CST
hello world!

第二种 利用shell程序运行
#bash /usr/program/first

[zcy@zcy myprogram]$ sh -x first.sh
+ date
20200606日 星期六 19:44:07 CST
+ echo 'hello world!'
hello world!
[zcy@zcy myprogram]$ sh first.sh
20200606日 星期六 19:44:46 CST
hello world!

shell语法介绍

(1)使用变量

在Shell程序中所有变量保存的值都是字符串。

在Linux的Shell中,可以使用以下几种变量:

1.环境变量:是指与Shell执行的环境相关的一些变量。Shell环境变量在Shell启动时,就已定义好,如PATH,HOME,MAIL等,这些变量用户还可以重新定义。可使用set命令查看系统中各环境变量的值。

2.用户自定义变量: 变量名=变量值

3.预定义变量(系统变量):用户不能修改,只能引用这些变量。所有的预定义变量都是由“$”符号与另一个符号组成的,常用的Shell预定义变量有以下几个:

$#:位置参数的数量

$*:所有位置参数的内容

$?:命令执行后返回的状态

$$:当前进程的进程号

$!:后台运行的最后一个进程号

$0:当前执行的进程名

#!/bin/bash
echo "the letter you like is:$1 $2 $3" #输出位置变量的参数
echo "本脚本名:" $0
echo "本脚本中参数的个数:" $#
echo "上一条命令的返回值:" $?
cd /hom
#故意输错
echo #?
#上一条命令执行失败 返回非0
cd /home
echo #?
echo "pid;" $$


(2)输入/输出内部命令

1.输出命令:echo

2.输入命令:read

举例3:编写一个Shell程序contact,接受用户输入的用户名和电话号码,将这些信息显示在终端上,并保存到contact.txt文件vi中。

#!/bin/bash
read -p "your name and phone:" NAME PHONE
echo $NAME,$PHONE
echo $NAME,$PHONE>contact.txt

shell调试

调试跟踪

1.-n选项

bash命令的“-n”选项使Shell不执行脚本,仅检查脚本中的语法问题。

2.-v选项

bash命令的“-v”选项使Shell在执行程序过程中,将读入的每一个命令行都原样输出到终端。

3.-x选项

bash命令的“-x”选项使Shell在执行程序过程中,把执行的每一个命令在行首用一个“+”号加上对应的命令显示在终端上,并把每一个变量和该变量的值也显示出来。使用该选项更方便跟踪程序的执行过程。

实例
1.增加用户账户

举例20:编写一个Shell程序addaccount.sh,在系统中增加四个账户,同时设定他们的初始密码为123456,主组群为wl15。

    ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200606230902554.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3pjeV9pbnNwaXJl,size_16,color_FFFFFF,t_70)

2.统计子目录和文件数量

举例21:

编写一个Shell程序count.sh,统计当前目录中子目录以及文件的数量。

在这里插入图片描述

  1. 九九乘法表

举例22:编写乘法口诀cfkj.sh,打印出九九乘法表。

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

买代码v 18327244279

谢谢你这莫可爱还打赏我!!!

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

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

打赏作者

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

抵扣说明:

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

余额充值