了解shell script

227 阅读1分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第10天,点击查看活动详情

在之前的项目中我们使用过shell script,它非常的方便,不需要编译就能运行,在使用中能简化我们的日常管理工作。

shell script就是程序化脚本,它是一个专门为shell所写的脚本。因此,我们写shell script时也要注意书写格式,例如:它从上而下,从左往右执行,多个空格只会显示一个。运行文件通过xxx shell.sh来运行。

由于linux默认使用者家目录下的~/bin目录会被设置到$PATH内,所以我们也可以将shell.sh创建在/home/dmtsai/bin/下面。若是shell.sh在 ~/bin内且具有rx的权限,那就直接输入shell.sh就可以运行脚本。

下面,我们来编写一个shell script程序: cd; mkdir scripts; cd scripts vim sh01.sh !/bin/bash PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo -e "Hello World! \a \n" exit 0

shell有很多的版本,比如 BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的Shell。 C shell:是SUN公司Shell的BSD版本。 Bourne Shell:是贝尔实验室开发的版本。

在编程上,shell是解释型代码,不需要编译就能解释,是很方便的地方。

我们通过touch来创建3个空的文件,文件名开头由用户输入决定,设置用户为“filename”,而今天的日期是2022/8.10,若想要以前天、昨天、今天的日期来创建这些文件,即filename_20220808,filename_20220809,filename_20220810,下面我们来编写代码。

vim sh03.sh !/bin/bash PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo -e "I will use 'touch' command to create 3 files." # 纯粹显示信息 read -p "Please input your filename: " fileuser # 提示用户输入 filename={fileuser:-"filename"} # 我们开始判断是否设置了文件名 date1=(date --date='2 days ago' +%Y%m%d) # date2=(datedate=1daysago+date3=(date --date='1 days ago' +%Y%m%d) # date3=(date +%Y%m%d) # file1=filename{filename}{date1} # file2=filename{filename}{date2} file3=filename{filename}{date3} 创建文件 touch "file1"touch"file1" touch "file2" touch "file3"shsh04.shllvimsh04.sh!/bin/bashPATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin: /binexportPATHechoe"YouSHOULDinput2numbers,Iwillcrossthem!\n"readp"firstnumber:"firstnureadp"secondnumber:"secnutotal=file3" sh sh04.sh ll vim sh04.sh !/bin/bash PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH echo -e "You SHOULD input 2 numbers, I will cross them! \n" read -p "first number: " firstnu read -p "second number: " secnu total=((firstnufirstnu*secnu)) echo -e "\nThe result of firstnufirstnu secnu is ==> $total" sh sh04.sh

好了,家庭对shell 的讲解就到这里了。