博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Shell编程(一)
阅读量:4650 次
发布时间:2019-06-09

本文共 1436 字,大约阅读时间需要 4 分钟。

前言:我的简历中写到熟悉linux常用命令,能进行shell编程,因此学习shell编程是必须的了。

阅读目录:

  • 一、shell与bash

  • 二、shell脚本的结构及执行

  • 三、shell中的循环、if判断、函数

一、shell与bash

shell是用户与linux操作系统内核交互的接口程序,也是一个命令语言解释器​,将用户输入的命令解释给linux内核。

​Shell有很多种类,常见的有Bourne Shell(/usr/bin/sh或/bin/sh),Bourne Again Shell(/bin/bash),C shell(/usr/bin/csh),K Shell(/usr/bin/ksh),Shell for root(/sbin/sh)等。

bash是shell的一种,也是大多数linux系统默认使用的shell。

二、shell脚本的结构及执行

1.脚本格式

  利用vi编辑器编写脚本​的格式是固定的,如下:

 #!/bin/sh​     //#!告诉系统其后面路径指定的程序就是解释此脚本文件的shell程序。

#comments    //注释行

your commands go here 

2.执行脚本

 编辑完脚本后,保存文件名为filename.sh,在运行此脚本前,需要修改此脚本的可执行权限:

chmod+X  fi​lename.sh

执行脚本:

  ./filename.sh

3.最简单的hello world 程序

#!​/bin/sh

a="hello world";            //变量赋值  variable_name = variable_value

echo $a;​                        //使用变量$variable或${variable}

三、shell中的循环、if 判断、函数

1.  for循环​

for  i  in  $(seq 0 5) ;do 

    echo $i​

   done​

2.while循环

 while 条件;do

   command

done

比如: a=10

    while ​[$a -ge 1];do

         ​echo $a

         a=$[$a-1​]

done

3.  if  判断语句; then  command   fi

 

     if 判断语句; then  command 

     else​  command

     fi

 

      if 判断语句一; then  command

      elif判断语句二;  then  command

      else command

       fi

if((a<5))  等同于  if[$a -lt 5]​   -lt 小于

if((a>5))​ 等同于 if[$a -gt 5]   -gt 大于

​if((a>=5)) 等同于if[$a -ge 5]  -ge 大于等于

​if((a<=5))等同于if[$a -le 5]    -le 小于等于

if((a==5))等同于 if[$a -eq 5]   -eq 等于

if((a!=5))​等同于 if[$a -ne 5]    -ne 不等于

判断数值大小除了(())的形式外,还可以使用[]​

​数学计算要用[]括起来并且外面要带一个$ 

a=1

b=2

sum=$[$a+$b]​

4. shell脚本中的函数

function 函数名(){

command

}   

在shell脚本中,函数要写在最前面。

function sum(){

sum=$[$1+$2]

echo $sum

}

sum $1 $2​

转载于:https://www.cnblogs.com/whx7762/p/7717627.html

你可能感兴趣的文章
Python03
查看>>
LOJ 2537 「PKUWC2018」Minimax
查看>>
使用java中replaceAll方法替换字符串中的反斜杠
查看>>
Some configure
查看>>
流量调整和限流技术 【转载】
查看>>
1 线性空间
查看>>
VS不显示最近打开的项目
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
2.抽取代码(BaseActivity)
查看>>
夏天过去了, 姥爷推荐几套来自smashingmagzine的超棒秋天主题壁纸
查看>>
反射的所有api
查看>>
css 定位及遮罩层小技巧
查看>>
[2017.02.23] Java8 函数式编程
查看>>
sprintf 和strcpy 的差别
查看>>
JS中window.event事件使用详解
查看>>
ES6深入学习记录(一)class方法相关
查看>>
C语言对mysql数据库的操作
查看>>
INNO SETUP 获得命令行参数
查看>>
链接全局变量再说BSS段的清理
查看>>