如果可以在shell中输入命令,那么你就可以使用shell脚本。所谓的shell脚本,就是将一系列的命令写在一个文档中,然后让shell从该文件中读取命令,就像是从终端进行读取一样。
Shell脚本的工作方式主要有两种:交互式和批处理。



1.用bash解释器命令运行脚本文件
创建脚本文件

qi:desktop ZB$ vim example.sh

脚本中的内容:

#!/bin/bash
#For Example BY ZB.com
pwd 
ls -al

第一行的脚本声明(#!)用来告诉系统使用哪种Shell解释器来执行脚本;
第二行的注释信息(#)是对于脚本功能和某些命令的介绍信息,使得自己或他人在日后看到这个脚本文件的时候,可以快速知道该脚本的作用或一些警告信息。
第三、四行的可执行语句就是我们平时执行的Linux命令了 。

执行脚本程序:

qi:desktop ZB$ bash example.sh
/Users/ZB/desktop
total 2778568
drwxr-xr-x@   4 ZB  staff        136  3 17  2018 $RECYCLE.BIN
drwx------+  29 ZB  staff        986 11 16 20:12 .
drwxr-xr-x@  46 ZB  staff       1564 11 16 20:12 ..
-rw-r--r--@   1 ZB  staff      24580 11 16 18:16 .DS_Store
-rw-------    1 ZB  staff      12288 11 16 17:01 .lhj.c.swp
-rw-r--r--    1 ZB  staff          0  7 14  2017 .localized
drwxrwxrwx   25 ZB  staff        850  8 10  2017 Eclipse版本源码
drwxr-xr-x   16 ZB  staff        544  6 30 16:07 FinallyHomeWork
-rw-r--r--@   1 ZB  staff     130560  6 10 13:07 Thumbs.db
drwxrwxrwx@   7 ZB  staff        238 11 15 11:10 VarDict-1.5.7
-rw-r--r--@   1 ZB  staff       2592  7  3 19:53 ViewGroup.rtf
-rw-r--r--    1 ZB  staff      39785  6 24 17:07 Westworld.S02E01.Journey.Into.Night.720p.AMZN.WEB-DL.DDP5.1.H.264-NTb.简体&英文.docx
-rw-r--r--@   1 ZB  staff  711156927 11 10 22:38 cd1.mp4
-rw-r--r--@   1 ZB  staff  711150870 11 10 22:50 cd2.mp4
-rw-r--r--@   1 ZB  staff        282  4 19  2018 desktop.ini
-rw-r--r--@   1 ZB  staff       1939  2 12  2018 eclipse - 快捷方式.lnk
-rw-r--r--    1 ZB  staff         48 11 16 20:12 example.sh
-rw-r--r--@   1 ZB  staff        751  6  9 21:41 recyclerview依赖.rtf
drwxr-xr-x@  17 ZB  staff        578  7  4 22:34 ui
drwxr-xr-x   84 ZB  staff       2856  2  2  2018 vs
drwxr-xr-x   10 ZB  staff        340  3  2  2018 错误
drwxr-xr-x  259 ZB  staff       8806  1 14  2018 保定&泰安
-rw-r--r--@   1 ZB  staff        544  7  4 02:18 图标.rtf
-rw-r--r--@   1 ZB  staff       2113  7  1 17:17 日报.rtf
-rw-r--r--@   1 ZB  staff        882  7  4 10:10 安卓AS快捷键.rtf
drwxrwxrwx   14 ZB  staff        476 11 16 16:32 栾海晶
-rw-r--r--@   1 ZB  staff      52473 11  4 23:41 未命名.rtf
drwxr-xr-x   12 ZB  staff        408  6 24 16:28 西部世界
drwxr-xr-x   75 ZB  staff       2550  2 19  2018 过年姥爷家

2.通过输入完整的路径的方式来执行

qi:desktop ZB$ ./example.sh
-bash: ./example.sh: Permission denied

因为权限不足而提示报错信息。

qi:desktop ZB$ chmod u+x example.sh
qi:desktop ZB$ ./example.sh
/Users/ZB/desktop
total 2778568
drwxr-xr-x@   4 ZB  staff        136  3 17  2018 $RECYCLE.BIN
drwx------+  29 ZB  staff        986 11 16 20:12 .
drwxr-xr-x@  46 ZB  staff       1564 11 16 20:12 ..
-rw-r--r--@   1 ZB  staff      24580 11 16 18:16 .DS_Store
-rw-------    1 ZB  staff      12288 11 16 17:01 .lhj.c.swp
-rw-r--r--    1 ZB  staff          0  7 14  2017 .localized
drwxrwxrwx   25 ZB  staff        850  8 10  2017 Eclipse版本源码
drwxr-xr-x   16 ZB  staff        544  6 30 16:07 FinallyHomeWork
-rw-r--r--@   1 ZB  staff     130560  6 10 13:07 Thumbs.db
drwxrwxrwx@   7 ZB  staff        238 11 15 11:10 VarDict-1.5.7
-rw-r--r--@   1 ZB  staff       2592  7  3 19:53 ViewGroup.rtf
-rw-r--r--    1 ZB  staff      39785  6 24 17:07 Westworld.S02E01.Journey.Into.Night.720p.AMZN.WEB-DL.DDP5.1.H.264-NTb.简体&英文.docx
-rw-r--r--@   1 ZB  staff  711156927 11 10 22:38 cd1.mp4
-rw-r--r--@   1 ZB  staff  711150870 11 10 22:50 cd2.mp4
-rw-r--r--@   1 ZB  staff        282  4 19  2018 desktop.ini
-rw-r--r--@   1 ZB  staff       1939  2 12  2018 eclipse - 快捷方式.lnk
-rwxr--r--    1 ZB  staff         48 11 16 20:12 example.sh
-rw-r--r--@   1 ZB  staff        751  6  9 21:41 recyclerview依赖.rtf
drwxr-xr-x@  17 ZB  staff        578  7  4 22:34 ui
drwxr-xr-x   84 ZB  staff       2856  2  2  2018 vs
drwxr-xr-x   10 ZB  staff        340  3  2  2018 错误
drwxr-xr-x  259 ZB  staff       8806  1 14  2018 保定&泰安
-rw-r--r--@   1 ZB  staff        544  7  4 02:18 图标.rtf
-rw-r--r--@   1 ZB  staff       2113  7  1 17:17 日报.rtf
-rw-r--r--@   1 ZB  staff        882  7  4 10:10 安卓AS快捷键.rtf
drwxrwxrwx   14 ZB  staff        476 11 16 16:32 栾海晶
-rw-r--r--@   1 ZB  staff      52473 11  4 23:41 未命名.rtf
drwxr-xr-x   12 ZB  staff        408  6 24 16:28 西部世界
drwxr-xr-x   75 ZB  staff       2550  2 19  2018 过年姥爷家

脚本可以接收用户传进来的参数

创建脚本文件

qi:desktop ZB$ vim example.sh

脚本中的内容:

#!/bin/bash
echo "当前脚本的名称是$0"
echo "总共有$#个参数,分别是$*。"
echo "第一个参数为$1,第五个为$5。"

$0代表的是当前脚本的名称。
$#代表有几个参数。
$*代表所有位置的参数值。
$?显示上一次命令的执行返回值。
$1、$2、$3···代表的是第N个位置的参数值。

执行脚本程序:

qi:desktop ZB$ sh example.sh one two three four five six 
当前脚本的名称是example.sh
总共有6个参数,分别是one two three four five six。
第一个参数为one,第五个为five。

补充知识:
一、KaTeX parse error: Expected 'EOF', got '#' at position 1: #̲、n 、$0、 xshell python脚本不能import xshell 脚本执行命令怎么写_desktop*的区别

$#:统计脚本中所有参数的个数
$*:对应参数的值
$n:n>=1 对应于第n个参数的值
$0:表示相应的脚本名称。例如下图的countpeople.sh
$@:会显示出所接受的所有参数。

xshell python脚本不能import xshell 脚本执行命令怎么写_desktop_02


xshell python脚本不能import xshell 脚本执行命令怎么写_Shell_03


二、条件判断函数的编写。

xshell python脚本不能import xshell 脚本执行命令怎么写_bash_04

xshell python脚本不能import xshell 脚本执行命令怎么写_Shell_05