文章目录

  • shell脚本的运行
  • 1.which和/etc/shells文件
  • 2.编写一个简单的脚本
  • 3.运行脚本
  • 4.接收用户的输入数据
  • 5.运行shell脚本的方式详解
  • .在新进程中运行脚本
  • .在当前进程中运行shell脚本
  • source用法( 将自身脚本中的变量值或函数等的返回值返回到当前shell)


shell脚本的运行

1.which和/etc/shells文件

which命令:查找命令的完整路径
具体功能:

which命令用于查找并显示给定命令的绝对路径, 环境变量$PATH中保存了查找命令时需要遍历的目录。
which指令会在环境变量 $PATH设置的目录里查找符合条件的文件。 使用which命令,就可以看到某个系统命令是否存在,
以及执行的到底是哪一个位置的命令。

容器中执行脚本 脚本运行命令_bash


/etc/shells:一个有效登陆shell的列表
可以查看可以使用的shell解释器

容器中执行脚本 脚本运行命令_容器中执行脚本_02

2.编写一个简单的脚本

vim 01.sh			#写一个脚本(文件名必须以.sh结尾)

容器中执行脚本 脚本运行命令_容器中执行脚本_03

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命令来从标准输入中读取用户输入的数据
$(占位符)表示变量

容器中执行脚本 脚本运行命令_数据_04

容器中执行脚本 脚本运行命令_shell脚本_05

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

容器中执行脚本 脚本运行命令_shell脚本_06


2.查看termianl的pid(使用source命令或.可强制执行脚本不用加权限,并且在当前进程中执行脚本)

容器中执行脚本 脚本运行命令_数据_07

source用法( 将自身脚本中的变量值或函数等的返回值返回到当前shell)

容器中执行脚本 脚本运行命令_容器中执行脚本_08

不同方式运行脚本的结果:

容器中执行脚本 脚本运行命令_bash_09