linux shell 脚本

发布时间:2025-01-21 09:37

Linux操作系统:理解命令行,学会使用Shell脚本 #生活技巧# #工作学习技巧# #编程语言学习路径#

    如果 shell 是你的男友,那么,shell 脚本,便是给男友的家务清单。

    有一天,小红让男朋友 shell 做家务,于是,她就对 shell 说:“洗碗”,等 shell 洗完碗,她又对 shell 说:“换灯炮”,等 shell 换完灯泡,她又对 shell 说:“拖地”... ... ... 一轮家务下来,小红不停地发指令,不停地指挥做家务,比男朋友 shell 还辛苦。

    第二天,小红让男友友 shell 做同样的家务,于是,她发了同样的指令。

    第三天,... ... ... 第n天,日复一日,小红厌烦了这种重复的生活,于是,她列了一份清单,名为 HouseWork.sh,内容如下:

#!/bin/sh

echo "开始做家务了"

洗碗

换灯泡

拖地

…… ……

shutdown -h now

echo "做好了,洗澡睡觉"

    第n+1天,小红把家务清单递给 shell 男友(./HouseWork.sh),于是,男朋友快乐地按照清单开始工作了。

    这份清单,就叫做 shell 脚本(*.sh),在 window 下,叫做 批处理(*.bat)。

    这一篇,我们就来谈一谈,如何高效地发号施令,让男朋友每天都快乐地做家务。

    简单来说,shell 脚本,就是一系列的命令集合。

    1、基本格式;

    2、执行;

    3、语法;

    1、基本格式:就是命令的集合,跟在shell里面一条一条输指令是一样的。

#!/bin/sh # shell脚本执行时被/bin/sh解释器执行。类似于“我的男朋友是 shell,这是他要做的事”。

boyfriend="I am a handsome man!"

echo $boyfriend

echo "start doing housework..."

mkdir housework

cd housework

mv -r /home/cloth/ ./

./washing

echo "housework is finished."

    2、执行:要让男友做家务,得把家务清单递给他,递家务清单的方法有三种。

        a、./HouseWork.sh,要求shell程序必须有可执行权限,chmod 0777 HouseWork.sh

        b、source HouseWork.sh,source是linux下一个命令,用来执行脚本程序,常用这个,不需要 .sh 有可执行权限。

        c、bashHouseWork.sh,bash是一个脚本解析器,相当于执行bash程序,HouseWork.sh是它的参数。

    3、语法:

        a、参数传递:

            shell是可以传递参数的,比如 ./HouseWork.sh 10 要求做10个家务。

                #,实际参数的个数

                $0,表示调用的shell

                $1,$2,$3,……,$n,第一个参数,第二个参数,第n个参数

        b、输出字符串:

                echo "we are rich men!"

                输出:we are rich men!

        c、变量定义、引用

                var=1413

               $(var)

        d、输出字符串 echo

                echo "hello!"

                var=1413

                echo $var

        e、调用linux命令

                直接执行:pwd;

                得到命令返回值:var4="`pwd`/include",注意``符号,是数字1旁边的那个~

        f、if else fi 语句

if [ -f a.txt ]

then

echo "have a.txt file"

elif [ -f b.txt ]

then

echo "have b.txt file"

else

echo "do not have file"

fi

        g、比较两个字符串
 

str1="luffy"

str2="luffy1"

str3="luffy2"

if [ $str1 = $str2 ]

then

echo "$str1 = $str2"

elif [ $str1 = $str3 ]

then

echo "$str1 = $str3"

elif [ $str2 = $str3 ]

then

echo "$str2 = $str3"

else

echo "no any string is equal"

fi

        h、比较数字大小
 

num1=1314

num2=1413

if [ $num1 -eq $num2 ] #比较数字大小 -eq(==),-gt(>),-lt(<),-ge(>=),-le(<=)

then

echo "num1=num2"

else

echo "num1!=num2"

fi

        i、判断字符串是否为空
 

if [ -z $1 ]

then

echo "param1 is null"

else

echo "param1 is $1"

fi

        j、逻辑或、逻辑与

if [ $1 = $2 -o $1 = $3 ] #-o表示逻辑或,也可以写成 if[] || []

then

echo "P1=P2orP1=P3"

else

echo "P1!=P2andP1!=P3"

fi

[ -z $1 ] || echo "$1" #if [ ] is false($1!=null),excute echo

[ -z $1 ] && echo "null" #if [ ] is true($1=null),excute echo

        k、for 和while

for i in 1 2 3 4 5

do

echo "loop$i"

done

for i in `ls`

do

echo $i

done

for i in $*

do

echo $i is param.

done

str="i am a rich man !"

for i in $str

do

echo $i

done

i=1

j=13

while [ $i -le $j ]

do

echo $i

i=$(($i+1))

done

        j、echo 创建和追加文件

echo "#include <stdio.h>

int main(void)

{

printf("i am a rich man!\n");

}" > testMain.c

echo "//It's a test file" >> testMain.c

家务清单,全文完。

网址:linux shell 脚本 https://www.yuejiaxmz.com/news/view/733823

相关内容

shell 脚本学习之一
脚本自动化任务
shell脚本中的$# $0 $@ $* $$ $! $?的意义
Linux技巧
Linux自动化任务
打造高效的工作环境 – SHELL 篇
【Linux自动化任务构建】
Linux定时任务
如何在Linux上自动化任务
100个日常实用脚本

随便看看