执行 SHELL 脚本的几种方式

本文介绍SHELL脚本的基础知识,包括shebang的作用、脚本的不同执行方式及其特点,以及如何利用shell的历史记录提高工作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文内容基于 bash shell。

SHELL 脚本

SHELL 脚本是,一个或多个 SHELL 命令组成的文本文件。其可以被脚本解释器解释执行。

一个 SHELL 脚本通常包含:shebang、注释、命令、指令。

shebang

shebang 位于文件第一行,用于指定要使用的解释器。一般写法有两种 #! /usr/bin/bash 或者 #! /usr/bin/env bash。第二种写法的优点是增加了不同系统间的可移植性。

当一个脚本没有指定 shebang 时,解释器会根据 $SHELL 变量对应的解释器执行脚本

执行脚本的方式

<shell> <script>.sh

例如:bash script.sh 或者 sh script.sh

这种方式适用于 script.sh 文件本身没有执行权限;或者文件没有指定 shebang。

/absolutepath/script.sh relativepath/script.sh

这种方式适用于脚本文件有执行权限时。

需要注意的是,如果脚本文件没有 shebang,则使用 $SHELL 指定的解释器执行。

source <script>.sh . <script>.sh

使用这种方式执行脚本的特点是,不会开启子 shell;如果脚本中定义了变量,则变量会在当前 shell 存在。

# script.sh
name="child"

# method01
source script.sh
echo ${name} # child

# method02
bash script.sh
echo ${name} # [不输出任何内容]

< 重定向

例如:bash < script.shsh < script.sh

小技巧

history

terminal 的命令历史存放在 ~/.bash_history 文件中。通过 history 命令可以查看一定数量($HISTSIZE)命令历史。

通过 !<historyid> 可以快速重复执行对应 historyid 的命令。通过 !! 可以快速重复执行上一条命令。

还可以通过方向键快速查看历史命令,回车执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值