《Linux系统》之"深入浅出"(六)shell script(续)

Shell Script教程—提纲挈领版 以前半吊子的了解过一些Shell Script,是作为学习Linux时附带的小章节,最近实习的时候,经常会用到,都是现学现卖,查查博客,查查手册,这几天对着RUNOOB.COM整个又看了一遍,顺便记录了一下笔记。 本身RUNOOB.COM就偏简易,我这个笔记自然是简易版本的简易版,原教程链接见,Shell教程。 【本人对以下代码例子本身不享有任何权利,也不承担任何责任,仅为二次编辑与整理】 She... 阅读详情

目录

一、shell script里常用的几个命令

1、expr命令

2、echo命令

3、printf命令

4、test命令

5、判断符号[]

二、流程控制语句

1、if分支结构

2、case..in语句

3、while循环结构

4、until循环结构

5、for循环结构

6、select表单循环

7、shift指令

三、函数的应用

四、script之间的引入

五、shell script的追踪与debug


一、shell script里常用的几个命令

1、expr命令

这个命令可以对整数表达式进行运算。注意,运算符前后必须要有空格符

[hyxy@master ~]$ expr 1 + 2
3
[hyxy@master ~]$ expr 12 - 10
2
[hyxy@master ~]$ expr 3 \* 4        <==乘号需要转义字符进行转义
12
[hyxy@master ~]$ expr 6 / 4         <==只能进行整除运算
1
[hyxy@master ~]$ expr `expr 3 + 9` / 3   <== 嵌套或者是给变量赋值时,使用反单引号
4
[hyxy@master ~]$ n=3
[hyxy@master ~]$ m=9
[hyxy@master ~]$ result=`expr \`expr $n + $m \` / 4`  <==反单引号嵌套时要使用转义字符
[hyxy@master ~]$ echo $result
3

或者使用选项可以对字符串进行一些计算

[hyxy@master ~]$ expr index "hello linux" ol     <==计算匹配字符第一次出现的位置序号,从1开始哦
3
[hyxy@master ~]$ expr substr "hello linux" 2 3  <==截取字符串,从第2个开始截取,截取3个长度
ell
[hyxy@master ~]$ expr length "hello linux"        <==计算字符串的长度
11
[hyxy@master ~]$ expr match “hello linux” "he"  <==计算两个字符串从头匹配上的字符个数
2

2、echo命令

echo命令用于输出显示一行数据。

[hyxy@master ~]$ name=kitty
[hyxy@master ~]$ echo $name
kitty
[hyxy@master ~]$ echo this is a test
this is a test

可以使用-e ,让转义字符串生效

[hyxy@master ~]$ echo "hello\nworld"
hello\nworld
[hyxy@master ~]$ echo -e "hello\nworld"         <== \n 表示换行      
hello
world
[hyxy@master ~]$ echo -e "hello\nworld\c"       <== \c 表示不换行
hello
world[hyxy@master ~]$ 

3、printf命令

与echo命令功能相同,用来输出显示数据。功能更强大,可以格式化字符串,指定字符串的宽度,左右对齐方式等等。默认情况下不换行,可以手动添加\n

语法:         printf     format    [arguments……...]
说明:         format:    格式控制字符串     
                    arguments:    参数值列表

格式控制字符表示含义 转义字符表示含义

%s

字符串

 \a警告字符,通常为ASCII的BEL字符

%f

对应位置必须是浮点数。否则报错

 \b后退

%c

ASCII字符,即显示对应参数的第一个字符

 \f换页

%d,%i

十进制整数

 \n换行

%o

八进制值

 \r回车

%u

不带正负号的十进制值

 \t水平制表符

%x

十六进制值(a-f)

 \v垂直制表符

%X

十六进制值(A-F)

 \\表示\本身

%%

表示%本身

   

直接看示范案例:

[hyxy@master ~]$ printf "%s\n" 1 2 3 10
1
2
3
10
[hyxy@master ~]$ printf "%.2f\n" 1 2 3 10
1.00
2.00
3.00
10.00
[hyxy@master ~]$ printf " (%s) " 1 2 3 10;echo
 (1)  (2)  (3)  (10)
[hyxy@master ~]$ printf "%s %s %s\n" 1 2 3 4     <==#多出的参数会重用之前的格式
1 2 3
4  
[hyxy@master ~]$ printf "%-10s %-10s %-4s %-4s \n" 姓名 性别 年龄 体重kg 张三 男 23 70 王红 女 18 45
姓名     性别     年龄 体重kg 
张三     男        23   70   
王红     女        18   45 
[hyxy@master ~]$ printf "%x\n" 43          <==将十进制43转成十六进制
2b

4、test命令

用于检测文件类型、文件属性、整数、字符串等操作

文件类型检测
test   -e   filename检测filename是否存在
test   -d   filename检测filename是不是目录
test   -f   filename检测filename是不是普通文件
test   -L   filename检测filename是不是软链接文件
文件属性检测
test   -r   filename检测filename是否有可读权限
test   -w   filename检测filename是否有可写权限
test   -x   filename检测filename是否有执行权限
两个文件的比较
test   file1  -nt  file2检测 file1 是否比 file2 新
test   file1  -ot  file2检测 file1 是否比 file2 旧
test   file1  -ef  file2检测 file1和 file2 是否为同一文件
两个整数的比较
test  n1  -eq  n2检测 n1 与 n2 是否相等
test  n1  -ne  n2检测n1 与 n2 是否不等
test   n1   -gt  n2检测n1 是否大于 n2 (greater than)
test   n1   -lt   n2检测n1 是否小于 n2 (less  than)
test   n1  -ge  n2检测n1 是否大于等于n2
test   n1   -le   n2检测n1 是否小于等于n2
字符串的数据
test   -z   string检测string  是否为空
test   -n   string检测string  是否不为空  -n  也可以省略
test    string1  ==  string2检测string1与string2是否相等
test    string1  !=  string2检测string1与string2 是否不想等
多条件连接     test   -r  filename  -a   -x  filename
 -aand,两个检测都成立,返回true
-oor,只要有一个检测成立,就返回true
!非

通常test命令不单独使用,而是与if语句连用,或者是放在循环结构中。

5、判断符号[]

除了好用的test外,我们还可以使用中括号来进行检测条件是否成立。

举例说明

[  -r  filename ]    :   检测filename是否有可读权限

[  -f  filename -a  -r  filename ]   :   检测filename是不是普通文件并且有可读权限

二、流程控制语句

shell script中,也支持像其他编程语言常用到的流程控制语句,如if,while等等。

1、if分支结构

只有一个条件表达式的写法:

写法1:
if  [   条件表达式  ]  ;then
           #
条件成立时,要执行的作业内容
fi

写法2:
if  [   条件表达式  ]  ;then
           #
条件成立时,要执行的作业内容
else
           #条件不成立时,要执行的作业内容
fi

if中的判断符号后的分号[;],也可以使用[enter]键来替换。 fi是if的倒写形式,是if分支结构结束的含义。

[hyxy@master ~]$ vim test.sh
#!/bin/bash
if [ -d "/home" ];then
        echo "this is a directory"
else
        echo "this is not a directory"
fi

[hyxy@master ~]$ sh test.sh
this is a directory

有多个条件表达式的写法:

if  [   条件表达式1  ]  ;then
           #
条件1成立时,要执行的作业内容
elif  [  条件表达式2  ] ;then
           #条件2成立时,要执行的作业内容
fi

[hyxy@master ~]$ vim test.sh
#!/bin/bash
m=10 n=11 x=4 y=5
if [ $m -gt $n ];then
        echo "m>n" 
elif [ $m -lt $n -a $x -lt $y ];then      #多条件可以使用 -a/-o连接
        echo "m<n&&x<y"
elif [ $m -le $n ] || [$x -eq $y ];then   #每个条件一个[],使用&&/||连接
        echo "m<=n&&x<=y"
fi
[hyxy@master ~]$ sh test.sh
m<n&&x<y

当然可以嵌套使用,这里就不举例了。

2、case..in语句

也可以利用case..in语句,进行匹配,选择匹配成功的那块进行作业。

格式:

case  $variable  in
值1)
             #作业内容
;;                                             <==两个分号,表示这个作业结束
值2)
             #作业内容
;;
esac 
                                      <==esac是倒着写的case,结束case..in结构的作用

[hyxy@master ~]$ vim test.sh
#!/bin/bash
case $1 in
"hello")
        echo "hello,welcome to china"
;;
"")
        echo "you must input parameters"
;;
*)                                      # 通配符*
        echo "your command is $0"
;;
esac
[hyxy@master ~]$ sh test.sh
you must input parameters

3、while循环结构

while循环结构:当条件成立时,就循环执行作业内容。

格式:

while  [  条件表达式  ]
do

             #作业内容
done

[hyxy@master ~]$ vim test.sh
#!/bin/bash
while [ "${input}" != "yes" -a "${input}" != "YES" ]
do
        read -p "please input yes/YES to stop:" input
done
        echo "your input is :${input}"
[hyxy@master ~]$ sh test.sh
please input yes/YES to stop:hello
please input yes/YES to stop:kitty
please input yes/YES to stop:yes        #输入yes终止循环
your input is :yes

4、until循环结构

until循环结构:当条件成立时,就终止循环,条件不成立时,就一直循环下去。

格式:

until  [  条件表达式  ]
do
          #
作业内容
done

我们使用until循环结构修改while循环结构的案例:

[hyxy@master ~]$ vim test.sh
#!/bin/bash
until [ "${input}" == "yes" -o "${input}" == "YES" ]
do
        read -p "please input yes/YES to stop:" input
done
        echo "your input is :${input}" 
[hyxy@master ~]$ sh test.sh
please input yes/YES to stop:a
please input yes/YES to stop:b
please input yes/YES to stop:yes
your input is :yes

在循环结构中,我们使用以下两个关键字:

break:  如果想要提前结束循环(即想跳出循环) 使用关键字
continue:  如果想结束当次循环,进行下一次循环 使用关键字

[hyxy@master ~]$ vim test.sh
#!/bin/bash
num=1
until [ "${input}" == "yes" -o "${input}" == "YES" ]
do
        read -p "please input yes/YES to stop:" input
        let num++
        if [ $num -gt 5 ];then
                echo "your count of input is out of 10,auto stop"
                break           <== 跳出,结束循环
        fi
done
        echo "your input is :${input}"
[hyxy@master ~]$ sh test.sh
please input yes/YES to stop:1
please input yes/YES to stop:1
please input yes/YES to stop:1
please input yes/YES to stop:1
please input yes/YES to stop:1
your count of input is out of 10,auto stop
your input is :1

5、for循环结构

while,until循环结构适合不知道循环次数的情况。而知道循环次数的情况下,for循环结构就比较合适了

语法:

for  variable  in   列表
do

              #作业内容
done

直接上案例

#!/bin/bash
for day in monday tuesday wenseday thursday friday saturday sunday
do
      echo " today is $day"
done

#!/bin/bash
files=$(ls ~)
for filename in ${files}
do
        echo "filename is $filename"
done
#!/bin/bash
for num in $(seq 1 100)
do
      echo "$num"
done
#!/bin/bash
for username in $(cut -d ':' -f1 /etc/passwd)
do
        echo "username is :$username"
done

for循环还有另外一种写法,适合在数值的处理上使用
格式:

for ((  变量初始化;条件限定;变量改变方向 ))
do
          #作业内容
done

#!/bin/bash
sum=0
for ((i=0;i<=10;i++))
do
     #sum=$[ $sum + $i ]
     sum=$(( $sum + $i ))
done
echo $sum

6、select表单循环

有的时候,需要将一些数据设置成表单的模式,供用户来选择。我们就可以使用select表单循环结构

格式:

for variable in  列表
do
          #作业内容
done

也直接上案例演示

#!/bin/bash
select var in monday tuesday wenseday thursday friday saturday sunday
do
   echo "your option is $var"
   if [ $var == "sunday" ];then
           break
   fi
done
[hyxy@master ~]$ sh test.sh
1) monday    3) wenseday  5) friday    7) sunday
2) tuesday   4) thursday  6) saturday
#? 2
your option is tuesday
#? 1
your option is monday
#? 2
your option is tuesday
#? 7
your option is sunday            #然后退出
[hyxy@master ~]$

7、shift指令

shift这个单词,在计算机中,有“使数据产生位移”的含义。对于linux系统来说,在shell中,shift命令可以使参数产生位移。我通过案例来给大家解释一下:

[hyxy@master ~]$ vim test.sh
#!/bin/bash
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"
echo "---------------------黄金分割线---------------------------"
shift
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"
echo "---------------------黄金分割线---------------------------"
shift
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"
echo "---------------------黄金分割线---------------------------"
shift
echo "all parameters ========>: $@"
echo "the first parameters ==>: $1"

运行这个shell script,试试看

[hyxy@master ~]$ sh test.sh  one two three four   #四个参数
all parameters ========>: one two three four
the first parameters ==>: one
---------------------黄金分割线---------------------------
all parameters ========>: two three four         #shift后,剩下三个参数
the first parameters ==>: two
---------------------黄金分割线---------------------------
all parameters ========>: three four             #shift后,剩下两个个参数
the first parameters ==>: three
---------------------黄金分割线---------------------------
all parameters ========>: four                   #shift后,剩下一个参数
the first parameters ==>: four

再看看这个案例:计算参数的总和

[hyxy@master ~]$ vim test.sh
#!/bin/bash
sum=0
until [ "$1" == "" ]
do
     sum=`expr $sum + $1 `
     shift                  #使参数向左移动
done
echo "sum:$sum"

运行结果如下:

[hyxy@master ~]$ sh test.sh  1 2 3 4 
sum:10

三、函数的应用

在shell script中,也支持函数的使用,这样可以更方便重用作业逻辑,简化我们的程序代码

格式:

function  funcName(){                                 
               #作业内容
}

注意:

1、关键字function 可加可不加
2、调用时,直接写函数名称,不添加()。
3、因为script是从上往下,从左往右执行的,所以,要先定义,后调用
4、return关键字,可加可不加,看需求
          加的话,返回值只能是0~255的整数,使用$?获取返回值
6、可以使用$n位置参数变量向函数里传值

看案例,来学习是最简单有效的方式哦!

应用案例1:

#!/bin/bash
function sum(){
  a=0
  for i in {1..100}
  do
     a=$[a+i]
  done
  echo "1~100 的和:$a"
}
sum        # 调用函数sum

[hyxy@master ~]$ sh test.sh   #执行script
1~100 的和:5050


[hyxy@master ~]$ source ./test.sh   #另外一种执行方式
1~100 的和:5050
[hyxy@master ~]$ sum      #因为test.sh已经引入此bash中,因此可以直接写函数调用了,是不是很方便
1~100 的和:5050

应用案例2:

#!/bin/bash
function f1(){
  sum=0
  for i in {1..100}
	do
	sum=$[sum+i]
  done
  echo "sum的结果是:$sum "
  x=200
  y=2
  return $[x+y]       #可以带有return关键字,规定函数的返回值
}
f1                    #调用函数
result=$?             #调用后函数的返回值,必须使用$?来读取
echo "result:$result"

[hyxy@master ~]$ sh test.sh
sum的结果是:5050
result:202            #函数的返回结果

这里强调一下:函数的返回值的范围:0~255。不会超过这个范围的。

应用案例3:

#!/bin/bash
function pr(){
        echo -n "your choise is "
}
echo "this programe is print your choise"
select var in monday tuesday wenseday thursday friday saturday sunday q
do
       pr; echo $var
       if [ "$var"  ==  "q" ] ;then
             break
       fi
done

[hyxy@master ~]$ sh test.sh
this programe is print your choise
1) monday    3) wenseday  5) friday    7) sunday
2) tuesday   4) thursday  6) saturday  8) q
#? 1
your choise is monday
#? 2
your choise is tuesday
#? 8
your choise is q

应用案例4:

#!/bin/bash
function f1(){
    sum=$[ $1 + $2 ]
    return $sum
}
f1 10 20
echo "f1执行结果:$?"


[hyxy@master ~]$ sh test.sh
f1执行结果:30

[hyxy@master ~]$ source ./test.sh   #将脚本引入bash环境下
f1执行结果:30
[hyxy@master ~]$ f1 20 40    #函数可以看成命令来执行
[hyxy@master ~]$ echo $?
60

四、script之间的引入

shell script内部也可以引用其他外部脚本,这样可以很方便的封装一些公用的代码作为一个独立的文件。

shell script引用外部脚本语法如下:  

.    fileName                      #   .与文件之间一定要有空格
或者
source    fileName

看下面案例:

1、在test.sh里定义函数f1

[hyxy@master ~]$ vim test.sh    #在test.sh定义一个函数
#!/bin/bash
function f1(){
    sum=$[ $1 + $2 ]
    echo "sum of the two number is:$sum"
}

2、在test1.sh里引入test.sh

[hyxy@master ~]$ vim test1.sh    
#!/bin/bash
. ~/test.sh           #在test1.sh里引入test.sh脚本
f1 10 10              #使用test.sh里的函数f1

3、执行test1.sh

[hyxy@master ~]$ sh test1.sh
sum of the two number is:20     #函数f1的逻辑

五、shell script的追踪与debug

我们可以使用下面的语法来进行脚本的追踪与debug

sh   [选项]   *.sh

选项介绍:

-n:不执行script,仅仅检查语法的问题

-v:不执行script,仅仅将script里的内容显示在屏幕上

-x:显示script里的重要数据,并执行script

[hyxy@master ~]$ vim test.sh
#!/bin/bash
function f1(){
    sum=$[ $1 + $2 ]
    echo "sum of the two number is:$sum"
}
name=nihao
yn=yes
for var in one two three
do
    echo $var
done

测试一下:


[hyxy@master ~]$ sh -x test.sh
+ name=nihao
+ yn=yes
+ for var in one two three
+ echo one
one                           
+ for var in one two three
+ echo two
two
+ for var in one two three
+ echo three
three

小总结:到这里 shell script就整理完了,在shell编程上,要多看,多练,才会更加纯熟。

 

熟练掌握Shell Script编程,加深对linux系统的理解 熟练掌握Shell Script编程,加深对linux系统的理解。。1. 知道如何执行shell程序 2. 在shell脚本中要体现条件控制(如if结构和条件分支) 3. 在shell脚本中要体现循环(for,while和until循环) 4. 掌握shell程序的调试 立即下载

相关推荐

高效静音黑科技 —— 单相直流无刷电机驱动器

然而,传统的BLDC电机驱动通常依赖于三相架构,电路复杂,成本高昂,且在低功率应用中显得有些“大材小用”。单相直流无刷电机驱动器作为一项高效、静音、经济的技术,正逐渐改变着各个领域的电机驱动方式。其精巧的控制策略、显著的优势以及广阔的应用前景,都预示着这项技术将在未来扮演越来越重要的角色。它相较于传统的三相驱动,显著简化了电路结构,降低了成本,尤其适用于低功率、对静音要求极高的应用场景。通过这些模块的协同工作,单相直流无刷电机驱动器能够实现对电机速度、扭矩的精确控制,并最大程度地降低噪声和振动。

wen8789的博客 1764

ASCII码与16进制的互相转换(表)

所谓的ASCII和16进制都只是概念上的东西,在计算机中通通是二进制 转换应该是输出的转换,同样是一个数,在计算机内存中表示是一样的,只是输出不一样ASCII是针对字符的编码,几乎是键盘上的字符的编码。下面是一张ASCII和16进制的对应表: ASCII与16进制转换 ASCII 16进制 ASCII 16进制 ASCII 16进制 ASCII ...

anhezhen6831的博客 3156

STM32F4驱动ADS1220高精度ADC:从SPI配置到数据校准的完整实战指南

本文详细介绍了如何使用STM32F4微控制器驱动ADS1220高精度ADC,涵盖从SPI接口配置、寄存器设置到数据采集与校准的全过程。通过实战代码示例和硬件设计要点,帮助开发者快速构建高精度数据采集系统,适用于工业测量和精密仪器等应用场景。

weixin_26918763的博客 224

shell 循环 for while until ....

declare -i sfor(( i=1; ido        s=s+idoneecho    "The count is --> $s" [dev@abtsvr shellTest]$ sh test8.sh The count is --> 5050---------------------------------declare -i sdeclare -i iwhile [

qsd007的专栏 1640

AI辅助编程实战指南:从提示工程到开发环境搭建

大型语言模型(LLM)作为现代人工智能的核心技术,通过自然语言理解和生成能力,正在深刻改变软件开发范式。其原理基于海量代码和文本数据的预训练,能够根据上下文生成符合逻辑的代码片段和解决方案。这一技术的核心价值在于将开发者从繁琐的语法和基础逻辑编写中解放出来,提升开发效率与代码质量。在实际工程应用中,AI辅助编程已广泛应用于日常编码、代码调试、文档生成和系统设计等场景。其中,提示工程(Prompt Engineering)和检索增强生成(RAG)是两项关键技术:前者通过结构化、角色化的指令设计,引导AI生成更

weixin_26775679的博客 621

【学一点英飞凌】AutoSar-MCAL-Gtm-TOM模块

本文基于英飞凌TC3X7芯片手册,GTM的TOM模块是产生并输出PWM的地方,想要彻底了解PWM,就必须知道它是怎么产生和如何被输出的。TOM通道还没有介绍的,详见下一篇;

qq_44688936的博客 6030

Linux C 面试题总结

1、进程和线程的区别,及优劣性比较进程和线程的主要差别在于它们是不同的操作系统资源管理方式。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且

轻飘飞扬 1万+

用STM32手搓一个体温计

市面上大多额温计、测温计精度。

m0_61687959的博客 2375

bash shell脚本练习

用for实现判断/var目录下所有文件的类型 #!/bin/bash # for i in $(find /var); do if [ -b $i ];then echo "$i is block device" elif [ -c $i ]; then echo "$i is character device" elif [ -f $i ]; then echo "$i i...

whiteblacksheep的博客 549

保姆级教程解决Edge Copilot该服务在你所在的地区不可用及Sign in to continue your chat.——电脑篇

相信很多人更新到Win11之后都注意到自带的浏览器右上角多了一个Copilot,这个副驾驶是微软与OpenAI合作,免费使用,包括插件功能。相当于你可以在电脑上免费的使用GPT4。很可惜,点开提示该服务在你所在的地区不可用。很多人第一时间想到科学的上网应该就可以解决了,尝试后又提示you’ve reached the conversation limit for today.Sign in to continue your chat.明明登录账号了为什么还是不能用?不是免费吗,为什么提示今天受限制。 其实上

weixin_44887342的博客 5万+

【晶振专题】晶振学习笔记——ST AN2867应用手册 2

通过学习AN2867设计指南,我们知道皮尔斯晶振的基本知识。也了解了晶振的负载电容计算方法、安全因子测试方法和反馈电阻的作用。

一点硬件 1364

《Linux系统》之"深入浅出"(五)shell script

目录 一、shell script 与shell 1、什么是shell script 2、shell script的用途 二、shell编程规范 1、shell script的结构 2、shell script的执行 3、简单示范 三、shell字符串 1、字符串的基本用法 2、字符串的拼接 3、字符串的长度 4、子字符串的截取 5、字符串的替换 6、获取子字符串的位置...

从明老师的博客 527

【测开求职】面试题:数据结构 吐血整理

本篇文章是笔者为准备研究生复试以及校招而写,因此主要针对问答,注重理解,而不在于细节计算。涵盖考研范围内的所有知识内容,读者可以先查看上面的链接走一遍数据结构的整体框架结构。其中,重点难点以及易混淆的知识点,笔者用其他近30篇文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 7065

Linux系统学习 shell script

Linux系统学习 shell script

傻傻的心动的博客 1402

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

《Linux系统》之"深入浅出"(三)shell概述

一、什么是shell 到底什么是shell呢?我相信,这个问题,应该困扰过很多人吧?那么今天,我们就来好好捋一下这个概念。 首先,从英文单词上来理解,是“壳”的意思,用于区别“核”的概念,有“壳”保护“核”的涵义;这就好比“鸡蛋壳”与“鸡蛋黄”。然后我们再从计算机的角度来理解一下,计算机由一组硬件组成,,而内核(kernel)是用来管理和操纵这些硬件让其工作的。那么内核总不能让用户随意操作吧!...

从明老师的博客 600

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Linux shell script编程

Linux shell script编程 什么是shell script shell script是利用shell的功能所写的一个程序,这个程序使用纯文本文件,将一些shell的语法与命令写在里面。 shell script可以简单被看成是批处理文件,也可以被说成是一个程序语言,且这个程序语言由于都是利用shell与相关工具命令,所有不需要编译即可执行。 执行顺序 命令的执行是从上而下,从左而右...

budding0828 632

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Linux Shell Script 编程详解

Shell 是指一种应用程序,它是用户使用 Linux 的桥梁,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Shell 脚本(shell script),是一种为 shell 编写的脚本程序。Shell 编程只要有一个能编写代码的文本编辑器和一个能解释执行的脚本解释器就可以。Linux 的 Shell 种类众多,目前最为常用的就是。脚本简单地说就是一条条的文字命令,这些文字命令是可以看到的(如可以用记事本打开查看、编辑)。常见的脚本:JavaScript。

weixin_43977307的博客 1038

【运行Shell Script程序】

if…else三元表达式 分支结构 1.输入一个分数,判断该分数是ABCD中哪一级(A:[90,100],B:[70,90),C:[60,70),D:[0,60)) 2.输入x值,输出y的值:y={█(2x(x>5)@10-x(x<5)@x-2(x=5))┤ 3. 输入一个4位(含4位)以内的正整数,判断这个数字是几位数,并输出该数字的每位数字之和 4.输入2个数字和加减乘除中的一个符号,输出对应的结果 5.输入一个2位正整数,这个数字如果是奇数,输出各位数字之和,如果是偶数,输出各位数字之差

yxq422976的博客 2015

Linux系统编程之shell script介绍

一 概述 shell script(程序脚本化)是一个可以实现自动管理系统的好工具!它值得开发人员好好学习,基本上,shell script有点像是早期批处理的文件,即将一些命令汇整起来一次执行,但是shell script拥有更强大的功能,因为它可以编写不需要经过编译就能执行的shell script程序。这样它可以简化我们的日常工作管理,而且在Linux系统环境中,一些服务需要通过shell script来启动运行。 其实,shell script是利用shell的功能所写的一个"程序",这个程序是

calm_encode的博客 1244

【shell script】

脚本的运行方式,判断式,if语句,case语句,while循环、until循环和for循环

weixin_42504934的博客 2035

深入浅出Linux操作系统大数据定制Shell编程(六)

✍、深入浅出Linux操作系统大数据定制Shell编程(六)

Augenstern_QXL的博客 1235

Linux中"Shell"与"Bash"的关系

Linux中&quot;Shell&quot;与&quot;Bash&quot;的关系 此文属于我在学习Linux中的学习记录,便于回头查找相应文档使用,大多数解释都为其它网站引用,也用来分享给大家做个参考, 1、认识Shell 在计算机科学中,Shell俗称壳(用来区别于核),是指“为使用者提供操作界面”的软件(命令解析器)。它类似于DOS下的command.com和后来的cmd.exe。它接收用户命令,然后调用相应的应用程序。1 基...

yingzi_llllll的博客 2307

Linux系统下反弹shell

之前研究过一段时间的反弹shell,所以本文是我个人对反弹shell的理解,当然,本人才疏学浅,如有啥错的地方,各位师傅指出,共同学习一起进步!!!0x00 定义受害者由于某种原因主动向攻击者发起连接,攻击者可向受害者下发命令并得到命令执行结果,即为反弹shell。某种原因,包括但不限于受害机器运行了远控木马(钓鱼邮件附件),存在RCE漏洞等0x01 本质网络通信+命令执行+重定向方式。

若有战,召必回 3718

项目八 学习shell script

可以使用“declare i total-SfirstnsSsecnu",也可以使用上面的方式来表示。**3,netstat命令:**查询到目前主机开启的网络服务端口(service posts)。以bash程序来运行,通过“bash shell.sh"或“sh shell.sh"来运行。当你使用直接运行的方法来处理时,系统会开辟一个新的bash来运行sh02.sh里边的内容。**1,功能:**能提供数组,循环,条件与逻辑判断等功能。3,支持排错(debug),可以更好的管理主机。

打好基础,突破瓶颈 1293

Linux 学习shell script

学习shell script shell script可以将一些指令汇总起来一次执行(有点像windows下的.bat文件)。但是不仅仅如此,它还有更强大的功能。 什么是shell script ? 前面我们已经了解过了shell就是一些可执行的命令,或者说可执行程序。我们在文件里面编写我们想要完成的逻辑,运行程序就能完成编写的内容。比如说每次开机都要读取环境变量是不是很麻烦?把他写入到shell script就好了。 shell script 更提供数组、循环、条件与逻辑判断等重要功能。且无需编译就能运行

Little Big Us的博客 1002

shell script简介

1 什么是shell script? shell script是通过shell 的功能所写的一个program,这个程序 是使用纯文本文件,将一些shell的语法与命令写在里面 ,搭配正则式,管道命令和数据流重定向等功能,以达到我们所想要的功能。 2.1 编写第一个script #!/bin/bash # this is first shell script # printf H...

mick_hu的博客 7480
上一篇: 《Linux系统》之"深入浅出"(五)shell script
下一篇: 《Hadoop》之"踽踽独行"(二)云计算概述
从明老师
博客等级 码龄8年 263粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值