赞
踩
SH文件通常指的是 Shell 脚本文件,文件后缀名为.sh,其中包含一系列要由操作系统的命令解释器执行的命令。
在 Unix 和类 Unix 操作系统中,通常使用 Bourne Shell(sh)或其衍生的 Shell(如 Bash、Zsh)来执行这些脚本。
在 Shell 脚本文件中,可以通过直接编写命令来执行特定的操作。
#!/bin/bash
# 这是一个简单的 Shell 脚本
echo "Hello, World!"
# 使用变量
name="John"
echo "Welcome, $name!"
解释:
#!/bin/bash:指定了用于执行脚本的解释器,这里是 Bash。
echo "Hello, World!":打印 “Hello, World!” 到终端。
name="John":定义了一个变量 name,并赋值为 “John”。
echo "Welcome, $name!":使用变量输出 “Welcome, John!”。
要执行这个脚本,可以将其保存为文件,例如 myscript.sh,然后在终端中运行。
方式1:bash运行
bash myscript.sh
# or
sh myscript.sh
方式2:source运行
source myscript.sh
方式3:./ 运行
原理同bash运行,保证脚本首行有如下规则:
#!/bin/bash
并给脚本添加执行权限,然后直接运行:
# 添加执行权限
chmod +x myscript.sh
# 进入到脚本目录,直接运行
./myscript.sh
区别
bash执行脚本时,会创建shell子进程执行命令,子进程中会设置自己运行环境变量,但父进程的环境变量不会改变。 子进程执行完毕将会消失,并切换为父进程继续接收命令。
source执行脚本时,不会创建子进程,而是在父进程中直接执行,因此会改变父进程的环境变量。
./ 执行脚本与bash原理相同,但需要确保脚本首行指定执行文件(#!/bin/bash)且脚本本身具有执行权限。
总结:若要修改当前shell本身的环境变量,则需要使用source命令执行脚本。bash执行方式适用于安装软件,source执行方式适用于修改环境变量。
单一命令
#!/bin/bash
echo "Hello, World!"
此段代码中,echo "Hello, World!" 是一个简单的命令,会将 "Hello, World!" 输出到终端。
多个命令
#!/bin/bash
echo "Starting the script..."
ls -l
echo "Script completed."
此段代码中,脚本包含了多个命令,使用换行符分隔。
变量和命令替换
#!/bin/bash
name="John"
echo "Hello, $name!"
current_directory=$(pwd)
echo "Current directory: $current_directory"
此段代码中,展示了如何定义变量并在命令中使用它们,以及如何使用 $(command) 进行命令替换。
接受用户输入
#!/bin/bash
echo "What is your name?"
read name
echo "Hello, $name! Nice to meet you."
此段代码中,使用 read 命令可以接受用户的输入。
条件语句
#!/bin/bash
age=25
if [ $age -eq 18 ]; then
echo "You are 18 years old."
else
echo "You are not 18 years old."
fi
此段代码中,展示了一个简单的条件语句,根据年龄输出不同的消息。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。