文章目录
- shell脚本的运行
- 1.which和/etc/shells文件
- 2.编写一个简单的脚本
- 3.运行脚本
- 4.接收用户的输入数据
- 5.运行shell脚本的方式详解
- .在新进程中运行脚本
- .在当前进程中运行shell脚本
- source用法( 将自身脚本中的变量值或函数等的返回值返回到当前shell)
shell脚本的运行
1.which和/etc/shells文件
which命令:查找命令的完整路径
具体功能:
which命令用于查找并显示给定命令的绝对路径, 环境变量$PATH中保存了查找命令时需要遍历的目录。
which指令会在环境变量 $PATH设置的目录里查找符合条件的文件。 使用which命令,就可以看到某个系统命令是否存在,
以及执行的到底是哪一个位置的命令。
/etc/shells:一个有效登陆shell的列表
可以查看可以使用的shell解释器
2.编写一个简单的脚本
vim 01.sh #写一个脚本(文件名必须以.sh结尾)
3.运行脚本
有以下几种方法都可运行脚本:
1)sh 01.sh
sh test.sh :即使在脚本中指定了#!/bin/bash,但仍然是使用/bin/sh执行test.sh
=bash a.sh ##将脚本作为参数传给解释器。指定解释器解释脚本,这样就不需要在脚本中指定解释器,指定了也没用。
2)/bin/bash a.sh ###将脚本作为参数传给解释器。指定解释器解释脚本,这样就不需要在脚本中指定解释器,指定了也没用。
3)chmod +x 01.sh ##这种方式会找到shell脚本中指定的解释器,然后运行
./a.sh
4)source a.sh###在同一进程执行shell,并且强制执行。这样做的好处是可以调用脚本中的变量
4.接收用户的输入数据
read命令来从标准输入中读取用户输入的数据
$(占位符)表示变量
5.运行shell脚本的方式详解
运行 Shell 脚本有两种方法:一种在新进程中运行,一种是在当前 Shell 进程中运行。
.在新进程中运行脚本
1.sh xxx.sh
2.chmod +x xxx.sh #将shell脚本作为程序执行
./xxx.sh
上述命令均需要在脚本文件中指定shell解释器
3. /bin/bash xxx.sh #或者指定其他的shell解释器
通过上述命令不需要在脚本文件中编写解释器的信息,写了也没用
4. bash xxx.sh #更为简洁,运行bash命令,shell会在目录中找到对应的应用程序
上述两种写法本质上是一样的,只不过多了个查找的过程而已
.在当前进程中运行shell脚本
如何判断是不是新进程,查看脚本文件运行后的进程的pid和当前terminal的pid就可以判断了。
在shell中,可以使用$$变量获取当前进程的pid。
1.先获取脚本文件程序的pid
2.查看termianl的pid(使用source命令或.可强制执行脚本不用加权限,并且在当前进程中执行脚本)
source用法( 将自身脚本中的变量值或函数等的返回值返回到当前shell)
不同方式运行脚本的结果: