Linux学习笔记之shell编程基础

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux学习笔记之shell编程基础相关的知识,希望对你有一定的参考价值。

编程语言: 机器语言、汇编语言 、高级语言  

静态语言:编译性语言 ,特点: 强类型(变量在使用前,必须先声明,甚至还需要初始化);事先转换成可执行文件。包含语言如: C 、C++、JAVA、C#

动态语言:解释性语言 ,特点: 弱类型(变量用时声明,甚至不区分类型);边解释边执行。包含语言如: ASP、ASP.NET 、php 、SHELL 、Python 、PERL

编程能力:

面向过程 :Shell、C

面向对象:Python 、Perl 、JAVA 、C++

Bash :变量 类型

环境变量 :shell 及其子shell ,作为域为当前shell进程及其子进程

    查看当前shell 中环境变量的方式:

    1、#printenv

    2、#env

    3、#export

    查看当前Shell 中变量

    #set  VRNAME

    撤销变量:

   #unset   VRNAME 

本地变量 (叫局部变量):

    例:VRNAME=VALUE

     #echo "There are song ${ANIMAIL}s"  

位置变量:

    例:$1, $2  

    shift  :轮换、轮替

特殊变量(系统变量  )

    $? :上一个命令的执行状态返回值

    $#:参数的个数

    $*:参数的列表

    [email protected]:参数的列表

程序执行,可能有两类返回值

    程序执行结构

    程序代码返回代码:

        0:正确执行

        1-255 :错误执行  1、2、127 为系统预留

输出重定向

    > :输出重定向 ,覆盖输出

    >>:追加输出

    2>:重定向错误输出

    2>>:追加错误输出

    &>:重定向标准输出或错误输出至同一文件

脚本:命令的堆叠  ,按照实际需要,结合命令流程控制机制实现的源程序

格式:

#!/bin/bash

#注释行

语句 


Bash 中如何实现条件判断

整数测试:

   -eq :测试2个整数是否想等  比如 $A -eq $B

    -ne  :测试2个整数是否不等,不等为真,相等为假

    -gt :测试1个数是否大于另一个数

     -lt:测试一个数是否小于另一个数

    -ge :大于或等于

    -le  :小于或等于

字符测试:

   == :相等,两边需要有空格    示例:[ $A ==  $B ] 或 [ $A  =  $B ]

    != : 是否不等

     >:大于

      < :小于

     -n string:测试指定字符串是否为空,空位真,不空为假

     -z String :测试指定字符串是否不空,不空位真,空位假

      小数保留位数: bc  scale=2   ,示例:echo "scale=2;111/22" | bc  或者 bc <<< "scale=2;111/22"

       echo "scale=2;$1$2$3 " | bc

文件测试:

    -e FILE :测试文件是否存在

    -f FILE :测试是否为普通文件

    -d FILE :测试指定路径是否为目录

     -r:文件是否可读

     -w:文件是否可写

     -x:文件是否可执行

条件测试的表达式 L

     [ expression ]

     [[ expression ]]2

     expression

命令间的逻辑关系:

     逻辑与 :   &&  :如果前面为真,则执行后面的命令

     逻辑或:   ||  :如果前面条件为假,则执行后面的命令

组合条件测试:

   -a :逻辑与

    -o:逻辑或关系

    !:非关系

bash 的配置文件 

全局配置

     /etc/profile  ,/etc/profile.d/*.sh ,/etc/bashrc 

个人配置

     ~/.bash_profile ,~/.bashrc

profile类的文件 

    设定环境变量

    登录运行命令或脚本 

bash 类的文件

   设定本地变量

    定义命令别名 

登录式shell 如何读取配置文件

    /etc/profile ---> /etc/profile.d/*.sh ---> ~/.bash_profile -->~/.bashrc -->/etc/bashrc

非登录式shell

    ~/.bashrc -->/etc/bashrc-->/etc/profile.d/*.sh

脚本在执行时会启动一个子shell进程

     命令行钟启动的脚本会继承当前shell 环境变量

   系统自动执行的脚本(非命令行启动)就需要自我定义要的环境变量


本文出自 “Wish_亮” 博客,请务必保留此出处http://itwish.blog.51cto.com/11439802/1965817

以上是关于Linux学习笔记之shell编程基础的主要内容,如果未能解决你的问题,请参考以下文章

linux基础学习-17-linux操作系统之Shell编程基础讲解

shell编程基础

linux实验之shell编程基础

Linux学习8之Shell编程--基础正则表达式

第七章,shell编程基础

Shell 脚本编程基础