从零开始写shell脚本(1)--shell初体验

初识shell

计算机智能理解 01 组成的二进制语言。

早期计算机通过二进制语言来执行指令,对人类来说难以理解,读写都很不友好。后来,操作系统里提供了一种叫做shell的特殊的程序。shell接受你的英文格式(大多数情况下是英文)指令,如果指令有效,就会被传递给内核。

实际上,shell是一个提供给用户用来交互的软件,通过从标准输入设备(通常是键盘)或者文件读取指令,并且解释执行你的指令。

shell并不是内核的一部分,却通过系统调用来执行程序,比如创建文件等等。

Linux中包含各种不同版本的shell

Shell NameDeveloped byWhereRemark
BASH(Bourne-Again Shell)Brian Fox and Chet RameyFree Software FoundationLinux下最通用的shell
CSH (C Shell)Bill JoyUniversity of California(For BSD语法和用法都和C语言极为相似
KSH (Korn Shell)David KornAT&T Bell Labs
TCSHWilliam JoyTCSH是CSH的加强版本

输入下面的指令可以查看你的系统支持的shell:
$ cat /etc/shells

输入下面的指令可以查看当前正在使用的shell:
$ echo $SHELL

shell脚本

shell通常都是一些交互指令,你通过键盘输入指令,shell执行并且返回结果。当有大量命令需要执行时,一条一条交互就显得太没有效率,这时候就可以把这些指令存入文本文件,并且可以添加控制语句,像程序流程那样控制指令的运行。这就是shell script。

shell脚本类似于Windows下的批处理,但是比批处理强大的多。

如何写一个shell脚本

首先根据以下步骤我们来写一个shell脚本:
1. 使用编辑器,可以是vi, vimemacs,当然也可以是gedit , sublime这一类的软件
2. 编辑好你的shell 脚本后,为你的脚本添加可执行权限:
语法格式:chmod 权限 脚本名称
例:

$ chmod +x your-script-name
$ chmod 755 your-script-name

Note: 755意味着user拥有读写执行的权限,group和other只拥有读和执行权限,更多有关的知识可查看Linux文件权限。
3. 执行shell脚本
语法格式:

bash your-script-name
sh your-script-name
./your-script-name

一般大家都是用 ./your-script-name 来执行, . 意味着当前文件夹内,但是如果仅仅使用 . your-acript-name ,shell不会另起一个进程执行你的命令,意味着执行完你的脚本后,shell就会退出,你可以在你的机器上试一下。

好吧,让我们开始写一个shell脚本吧!
使用vim新建一个脚本vim fisrt.sh, 内容如下:

#
# My fisrt shell script
#
clear
echo "Hello,shell!"

执行 ./fisrt.sh ,很明显无法运行。添加执行权限:

$ chmod 755 fisrt.sh
$ ./fisrt.sh
脚本命令含义
My fisrt shell script在shell脚本里面起到注释的作用,单行注释
clear清屏命令
echo “Hello,shell!”向屏幕输出内容

下面写个更复杂的吧,vim ginfo

 #
 #
 # Script to print user information who currently login , current date & time
 #
 clear
 echo "Hello $USER"
 echo -e "Today is \c ";date
 echo -e "Number of user login : \c" ; who | wc -l
 echo "Calendar"
 cal
 exit 0

添加可执行权限后,./ginfo输出如图:
./ginfo

上面这段脚本输出当前用户,打印当前时间,输出日历信息。
这一节到此结束。
下一节将会补充 $USERecho -e , who |wc -l 的知识。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值