博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell环境和种类介绍及编程应用
阅读量:5129 次
发布时间:2019-06-13

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

一、shell介绍

  shell是c语言编写的程序,既是一种命令语言,又是一种程序设计语言。

  shell种类:.sh

  编译器:ash,bash,ksh,csh,zsh

  查看当前系统下的shell:cat /etc/shells

  查看默认的shell类型:echo $SHELL

二、shell脚本

  1.新建一个.sh格式的文件

  2.内容:(在这个文件里面输入我们要执行的命令)

    1)首行:#! /bin/bash ,#!是一个约定的标记,告诉系统这个脚本用什么样的编译器来执行  

    2)文本:

      echo 文本---向窗口输出文本 

    3)注释:

        单行注释 #

      多行注释 :<<!

           !   

  3.运行脚本

    sh xxx.sh

    bash xxx.sh

    source xxx.sh

    路径的方式来运行:绝对路径,相对路径 ./      在执行的时候有可能当前的文件没有执行权限:(1)chmod +x/r/w ./文件名---对编写的程序赋予可执行的权限,(2)chmod 777 文件名----对文件进行满权限操作,r-4,w-2,x-1

 

    总结:最好用sh xxx.sh方式来运行脚本

三、shell的变量

   1.本地变量,作用域只在当前环境有效

    普通变量:直接在终端进行定义,用echo输出即可,如下图

  

    1)变量名=变量值  等号前后不能有空格,且变量值中间不能有空格

    2)变量名=‘变量值’  值全部为字符串

    3)变量名="变量值"  值为字符串,如果值内有其他变量,则解析变量,并将变量值作为输出数据

    提示:

      变量值''和""区别:''不能解析其内变量,""可以解析其内变量

      变量值为数字,不加引号,其他推荐使用""

  2.全局变量,通过export把一个局部变量转换为全局变量

    env  查看系统中已存在的全局变量

    export 变量=值  定义全局变量,变量名建议为大写

  3.内置变量,内置变量只有$1-$9

    $0:获取当前执行的脚本的文件名

    $✳:代表获取的是所有参数

    $#:代表获取的是参数的个数

  

  4.取消变量

  对定义的变量,如果不使用时要及时进行取消,释放系统资源

  格式:

    unset 变量名  unset:内建shell命令,作用取消变量或函数,取消时变量名没有$

四、运算符

  算术运算符、比较运算符、逻辑运算符

五、函数:if,case,for,while

  1.定义函数:

1 function 函数名(){2   语句  3 }

  2.调用函数:

    函数名

  3.if:

1 if [条件]2 then3     语句块4 elif [条件]5 then6     语句块7 else8     语句块9 fi

  4.case

1 case 变量 in:2     值1)3         echo "语句块1";;4     ✳)5         echo "语句块2";;6      esac

  星号(✳)相当于else

  5.for

1 for 值 in 列表2 do3     执行语句4 done

  6.while

1 while [条件]2 do3     执行语句4 done

六、扩展

  1.计算/etc目录下有多少个文件

1 #! /bin/bash2 count='ls /etc | wc -l' 3 echo $count

  2.1)解释:   

1 #! /bin/bash2 for tfile in kkk aaa bbb tst; do3 echo $tfile4 done

    输出的文本为:     

1 kkk2 aaa3 bbb4 tst

   2)把一个目录下的文件查询出来赋值给一个变量

1 #! /bin/bash2 for tfile in 'ls /usr/testhome/'; do3 echo $tfile4 done

 

转载于:https://www.cnblogs.com/mia0812/p/10905007.html

你可能感兴趣的文章
JAVA常用知识总结(五)——Linux
查看>>
JS编码方式
查看>>
[国嵌攻略][159][SPI子系统]
查看>>
ATS metric query
查看>>
iview-layout布局
查看>>
AJAX原理解析与兼容方法封装
查看>>
Bzoj5294/洛谷P4428 [Bjoi2018]二进制(线段树)
查看>>
PSR标准规范
查看>>
开发APP需知
查看>>
对象初始化的过程
查看>>
番茄工作法
查看>>
bzoj4069【APIO2015】巴厘岛的雕塑
查看>>
LeetCode103 BinaryTreeZigzagLevelOrderTraversal(二叉树Z形层次遍历) Java题解
查看>>
《Genesis-3D开源游戏引擎--横版格斗游戏制作教程02:关键帧动画导入与切割》...
查看>>
2019开工大吉
查看>>
保留后四位小数
查看>>
天网管理系统------实验吧
查看>>
单例模式
查看>>
html整理(2)
查看>>
am335x u-boot2011.09 SPL 流程跟踪
查看>>