shell script

shell script是程序化脚本。之前说了,他可以一次执行很多命令。不仅如此,他还有很多数组,判断,循环功能,类似于编写程序。这样,它可以帮助我们更好管理主机。举个例子吧,我们日常管理有监控流量,登录文件,硬件设备撞态等,如果我们写成脚本,就可以自动执行,比手动执行效率快的不是一点半点。

先说一下编写shell script的注意事项:
1、命令执行是自上而下,自左而右分析执行的,和我们想的差不多;
2、命令,参数间的多个空白都会被忽略掉;
3、如果读到一个回车符号,就开始尝试执行该行命令;如果一行命令不够,需要\enter来把命令拓展至下一行;
4、#后面的符号视为注释;python也是这样,怪不得说python也是脚本语言;

好了,假设我们编写的脚本文件名为:home/dmtsai/shell.sh,那么如何执行脚本文件呢?有以下几种方法:
直接命令执行:这要保证shell.sh文件具有可读可执行权限。绝对路径方式:home/dmtsai/shell.sh,相对路径方式(如果你此刻目录在home/dmtsai):.shell.sh
或者以变量PATH功能:把shell.sh放在path指定的目录内,例如~/bin/。这样直接shell.sh就可以执行脚本了

以bash进程来执行:执行bash shell.sh就可以执行,shell.sh只要可读就可以执行了。大家可能不太懂bash执行和直接命令执行区别,bash执行其实就是将shell.sh作为参数传给bash命令执行的,不是自己执行,是被人家调用执行,所以不需要执行权限。

在这里,我们总结一下关于linux命令,环境变量。
在linux中,万物皆文件,不止是目录,我们用的一部分命令如ls等都是可执行文件。linux命令中,分为内置命令和外部命令,内部命令都是加载到内存中的,执行快,比如cd,我们可以用type()查看命令是内置的还是外部的。
而对于外部命令,比如ls等都是存放在PATH指定的目录中的,比如/bin等,我们执行ls命令时,系统就会新建一个子进程,按PATH指定目录的顺序查找名为ls的可执行文件,然后执行它。我们假如执行mv /bin/ls /root。把ls移动到/root目录下,但是/root不是PATH的指定目录,我们直接执行ls就不行了,必须明确它的路径。除非我们把/root加到PATH目录中 ,PATH="$PATH"+:/root.

我们下一个简单的helloworld程序:
在这里插入图片描述

1第一行表明这个脚本用的是bash的语法;
2.设置好环境变量十个好习惯,export把PATH输出为环境变量,但这只对
对此次登录有效,下次还是会恢复默认的。想要永久添加就在~./bashrc中添加export PATH=…,所有用户都永久有效就在ect/profile中修改,然后用source执行该文件。

2简单的练习。
1.交互式脚本:变量内容自己决定。编写一个脚本,让用户输入姓和名,在屏幕上显示你的名字。类似于read命令;

2、数值运算

在这里插入图片描述
3、script执行方式的区别(source,shscript,./script)
用命令执行或用bash(sh)执行,都是创建了一个bash子进程,这意味着在子进程的各项变量和操作不会传回父进程。举个例子:
在这里插入图片描述
利用source执行,在父进程中就会执行
在这里插入图片描述

Shell脚本中$ 0、$ ?、$ !、$ $ 、$ *、$ #、$@等的意义说明
$ 0代表shell本身文件名;
$ $ 代表shell本身的PID号;
$ 1,…n代表第1…n个参数;
$@ 列表形式的所有参数;以" $ 1" “$ 2” … “$ n” 的形式输出所有参数。
$!
Shell最后运行的后台Process的PID(后台运行的最后一个进程的 进程ID号)
$?
最后运行的命令的结束代码(返回值)即执行上一个指令的返回值 (显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误)
$#代表添加到Shell的参数个数

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值