`
qindongliang1922
  • 浏览: 2188855 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
7265517b-f87e-3137-b62c-5c6e30e26109
证道Lucene4
浏览量:117670
097be4a0-491e-39c0-89ff-3456fadf8262
证道Hadoop
浏览量:126074
41c37529-f6d8-32e4-8563-3b42b2712a50
证道shell编程
浏览量:60034
43832365-bc15-3f5d-b3cd-c9161722a70c
ELK修真
浏览量:71402
社区版块
存档分类
最新评论

shell编程基础知识

阅读更多
熟悉shell小脚本的一些基本语法,对我们的系统运维和控制非常有用,下面散仙介绍一些比较有用的知识.


1,如何向脚本里传参并打印,写一个小脚本测试传参,a,b,c并打印出来,注意接收来自命令行传入的参数,第一个参数用$1表示,第二个参数$2表示,。。。以此类推。注意:$0表示脚本文件名。另外一个在shell编程中经常用到 的是“$@”这个代表所有的参数,。你可以用一个循环来遍历这个参数。如果用java来类比的话,可以把$@看作是man函数中定义的那个数组


echo $1

echo "上面是输出,下面是测试"


for arg in $@

do

echo $arg

done

输出如下:
a
上面是输出,下面是测试
a
b
c

遍历根目录下的所有文件的代码
for  filename in *
do
echo  $filename
done


//遍历并拷贝文件至一个新的目录pp下
for  filename in *
do

[ -f $filename ] && cp $filename /root/pp

echo  $filename

done



1、条件测试操作:
需要在Shell脚本中有选择性地执行任务时,首先面临的问题就是,如何设置命令执行的条件?
在Shell环境中,可以根据命令执行后返回状态值来判断该命令是否成功执行,当返回值为0是表示成功执行,否则(非0值)表示执行失败。用于特定条件表达式的测试时,可以使用Linux系统中提供的专用工具——test命令、
使用test测试命令时,可以有以下两种形式。
test       条件表达式
【 条件表达式 】
这两种方式的作用完全相同,但通常后一种形式更为常用,也更贴近编程习惯。需要注意的是,方括号“[”或者“]”与条件表达式语句之间至少需要有一个空格进行分隔。
根据需要判断的条件内容不同,条件操作也不同,最常用的条件主要包括文件状态测试,比较整数值大小,比较字符串,以及同时判断多个条件时的逻辑关系,下面将分别进行讲解。以下主要采用方括号的测试形式。
1.1、测试文件状态
文件状态测试是指根据给定的路径名称,判断该名称对应的是文件还是目录,或者判断文件是否可读,可写,可执行等。根据判断的状态不同,在条件表达式中需要使用不同的操作选项。

if判断:
?b当file存在并且是块文件时返回真
-c 当file存在并且是字符文件时返回真
-d 当pathname存在并且是一个目录时返回真
-e 当pathname指定的文件或目录存在时返回真
-f 当file存在并且是正规文件时返回真
-g 当由pathname指定的文件或目录存在并且设置了SGID位时返回为真
-h 当file存在并且是符号链接文件时返回真,该选项在一些老系统上无效
-k 当由pathname指定的文件或目录存在并且设置了“粘滞”位时返回真
-p 当file存在并且是命令管道时返回为真
-r 当由pathname指定的文件或目录存在并且可读时返回为真
-s 当file存在文件大小大于0时返回真
-u 当由pathname指定的文件或目录存在并且设置了SUID位时返回真
-w 当由pathname指定的文件或目录存在并且可执行时返回真。一个目录为了它的内容被访问必然是可执行的。
-o 当由pathname指定的文件或目录存在并且被子当前进程的有效用户ID所指定的用户拥有时返回真。
-eq   等于
-ne   不等于
-gt   大于
-lt   小于
-le   小于等于
-ge   大于等于
-z    空串
=     两个字符相等
!=    两个字符不等
-n    非空串
-e filename     如果 filename存在,则为真
-d filename     如果 filename为目录,则为真
-f filename     如果 filename为常规文件,则为真
-L filename     如果 filename为符号链接,则为真
-r filename     如果 filename可读,则为真
-w filename     如果 filename可写,则为真
-x filename     如果 filename可执行,则为真
filename1 -nt filename2 如果 filename1比 filename2新,则为真
filename1 -ot filename2 如果 filename1比 filename2旧,则为真
-z string               如果 string长度为零,则为真
-n string               如果 string长度非零,则为真
string1 = string2       如果 string1与 string2 相同,则为真
string1 != string2      如果 string1与 string2 不同,则为真
num1 -eq num2           等于
num1 -ne num2           不等于
num1 -lt num2           小于
num1 -le num2           小于或等于
num1 -gt num2           大于
num1 -ge num2           大于或等于


1.4:逻辑测试:
逻辑测试是指同时使用的两个(或多个)条件表达式之间的关系。用户可以同时测试多个条件,根据这些条件是否同时成立或者只要有其中一个条件成立等情况,来决定采取何种操作。逻辑测试可以使用的操作选项如下。
>  &&:逻辑与,表示前后两个表达式都成立时整个测试结果才为真,否则结果为假。在使用test命令形式进程测试时,此选项可以改为" -a"。
>   ||:逻辑或,表示前后两个条件至少有一个成立时整个测试结果即为真,否则结果为假。在使用test命令形式进行测试时,此选项可以改为"-o“。
>  !:逻辑否,表示当指定的条件表达式不成立时,整个测试命令的结果为真。
在上述逻辑测试的操作选项中,”&&“和”||“通常也用于间隔不同的命令操作,其作用是相似的。同时使用多个逻辑运算操作时,一般安装从左到右的顺序进行测试。

多重if语句例子:

#! /bin/bash



#接受外界传参,注意加x是为了防止输出空时,报的异常



if [ $1x = "a"x ] ;  then
   
   echo "it is a";

elif [ $1x = "b"x  ] ; then

   echo "it is b";

elif [ $1x = "中国"x ]; then
   echo "输入的是中国";

else
 
   echo "nothing";

fi


if单独测试:
if [ 1 -gt  2   ] ;then

   echo "1 > 2 ";
else

   echo " 1 < 2 ";

fi



for循环测试:


case语句小例子:

case $1 in

1|one) echo "out put is 1 or one" ;;

2|two) echo "out put is 2 or two" ;;

3)   echo aaa
     echo bbb
     echo ccc;;

*)   echo "this is non match";;


esac





统计当前登录系统用户数
who | wc -l

统计行数: wc -l  txt.file



  • 大小: 64.1 KB
  • 大小: 111.7 KB
分享到:
评论

相关推荐

    实验5《Shell编程基础知识》详解.docx

    Shell 编程基础知识 Shell 编程基础知识是 Linux 运维工程师、JavaEE 和 Python 程序员、 大数据程序员等不可或缺的技能。 Shell 是一个命令解释器,是一个用 C 语言编写的程序,是一个命令行解释器,它接收应用...

    shell编程基础知识 基础入门 实操

    对于初学者来说,掌握Shell编程基础知识是提升效率的关键。本篇文章将详细阐述Shell编程的基本概念、核心要素以及实操技巧。 **基础概念** 1. **Sha-Bang**:在Shell脚本的开头,`#!/bin/bash` 或 `#!/bin/sh` 是...

    Linux.Shell编程基础知识.doc

    ### Linux Shell 编程基础知识详解 #### 一、Shell 简介 Shell 是 Linux 系统中的一个重要组成部分,它充当着用户与操作系统内核之间的桥梁。用户可以通过 Shell 输入各种命令,Shell 负责解释这些命令并将它们传递...

    shell编程基础知识汇总.doc

    shell编程基础知识汇总.doc

    Linux网络操作系统基础:shell编程基础.pptx

    以下是对Shell编程基础知识的详细讲解: 首先,熟悉Shell基础知识意味着理解Shell脚本的基本操作,例如命令行交互、文件管理、流程控制等。Shell脚本的编写最佳实践通常包括清晰的注释、良好的结构和有效的错误处理...

    Linux快速入门以及shell编程基础知识

    这篇文章旨在带你快速入门Linux基础知识,并教你如何编写简单的shell脚本。 首先,Linux的目录结构不同于Windows,它采用层级式的树状目录结构,以根目录`/`开始。主要目录包括: 1. `/bin`:包含常用命令,供所有...

    操作系统实验-Shell编程基础.docx

    通过本次实验,掌握 Shell 编程基础知识,了解 Linux 操作系统的工作模式,熟悉 top 命令的使用和系统资源监控。 二、实验设备及软件 实验设备:计算机一台 实验软件:Linux 操作系统、top 命令 三、实验流程图 ...

    LinuxShell编程基础.pdf

    Linux Shell 编程基础 Linux Shell 编程基础是 ...Linux Shell 编程基础是 Linux 操作系统中一个非常重要的组件,掌握这些基础知识可以编写出更加复杂的 Shell 脚本,实现自动化任务、数据处理、系统管理等功能。

    basic shell编程基础

    ### Linux Shell 编程基础知识详解 #### 一、Shell编程概览 Linux Shell编程是一种用于自动化任务、系统管理和脚本开发的技术。它基于各种Shell解释器(如Bash、csh、sh等),通过编写一系列命令来实现复杂的功能...

    Shell编程基础

    ### Shell编程基础知识点详解 #### 一、Bash变量与命名规则 - **变量命名规则**: - 变量名必须以字母或下划线`_`开头。 - 名称中间仅允许包含字母、数字及下划线。 - 变量名的最大长度不得超过255个字符。 - ...

    LinuxShell编程基础教程.pdf

    本资源为 Linux Shell 编程基础教程,涵盖了 Linux Shell 编程的基础知识,包括语法基本介绍、变量、环境变量、Shell 命令和流程控制等。 一、语法基本介绍 在 Linux Shell 编程中,必须以#!开头,指定解释器的...

    shell编程基础.pdf

    ### Shell编程基础知识点详解 #### 一、Shell编程概述 **Shell** 在 **Linux** 系统中扮演着极其重要的角色。它不仅是用户与操作系统之间的交互界面,而且是一种功能强大的编程语言,允许用户通过一系列命令来自动...

    Shell脚本专家指南Shell编程基础.pdf

    #### 二、Shell编程基础知识 1. **变量定义**: - 在Shell脚本中,变量定义非常简单,无需指定类型,例如:`var=value`。 - 使用变量时,需要在变量名前加 `$` 符号,如 `echo $var`。 2. **条件判断**: - ...

    shell编程基础知识小结

    总之,掌握这些shell编程基础知识是编写高效、实用脚本的关键。熟练运用这些概念,你可以编写出自动完成日常任务、管理文件系统、处理数据的强大脚本。持续学习和实践将使你在shell编程领域更加得心应手。

    Shell编程基础.pdf

    接下来将详细解释在给定文件内容中出现的Shell编程基础知识点。 1. Shell基础概念:Shell是一个命令语言解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序。用户可以在命令行中输入命令...

    Linux Shell编程基础完整知识

    ### Linux Shell编程基础完整知识详解 #### 一、Shell脚本的基本构成与执行 Linux Shell编程是操作系统管理和自动化任务的核心技能之一。Shell脚本能够帮助用户执行一系列预定义的命令,实现复杂的操作流程自动化...

    Linux——shell编程基础

    ### Linux Shell 编程基础知识详解 #### 一、Shell 概述 - **Shell 定义**:在 Linux 或 Unix 系统中,Shell 是一个命令行解释器,它接收用户的命令并将其发送给操作系统内核。Shell 既是用户与操作系统交互的接口...

Global site tag (gtag.js) - Google Analytics