线下营销兰州正规seo整站优化工具
目录
1. 特殊的状态变量
1.1 $?(上一个命令的退出状态)
1.2 $$(当前进程的 PID)
1.3 $!(后台进程的 PID)
1.4 $_(上一条命令的最后一个参数)
2.常用shell内置变量
2.1 echo(输出信息)
2.2 eval(执行二次解析)
2.3 exec(替换当前进程)
2.4 shift(移动位置参数)
2.5 exit(退出 Shell 进程)
2.6 Read命令
1. 特殊的状态变量
Shell 进程执行命令时,系统会返回一个状态码(也叫退出状态或返回值)来表示命令执行的结果。
1.1 $?(上一个命令的退出状态)
 
$?用来获取上一个命令的返回值。- 返回 
0表示命令执行成功,返回非0表示执行失败。 
ls /home  # 假设这个命令成功
echo $?   # 输出 0ls /nonexistent  # 这个目录不存在,命令失败
echo $?   # 输出非 0(通常是 2 或 1)
 
1.2 $$(当前进程的 PID)
 
$$表示当前 Shell 进程的 进程号(PID)。
echo $$  # 输出当前 Shell 进程的 PID
 
1.3 $!(后台进程的 PID)
 
$!用于获取 返回最近一个后台进程的进程号(PID)(& 结尾的命令)的 PID。&让sleep 30命令在后台运行,这样 Shell 会立即返回到命令行,sleep会在后台运行,而你可以继续执行其他命令,而不需要等待它完成。不会等待 30 秒。
sleep 30 &  # 让 sleep 30 秒,并放到后台运行
echo $!     # 输出 sleep 命令的 PID
 
 
1.4 $_(上一条命令的最后一个参数)
 
$_代表上一个命令的最后一个参数。- 也可以在命令行输入时快速使用它,提高效率。
 
echo Hello World
echo $_  # 输出 "World"
 
2.常用shell内置变量
Shell 提供了一些常用的内置命令,比如 echo、eval、exec、shift、exit 等。
2.1 echo(输出信息)
 
echo 用于打印字符串或变量。
选项:
-n:不换行-e:解析转义字符(如\n换行,\t制表符)
echo -n "Hello, "  
echo "World!"  echo -e "Line1\nLine2\nLine3"
 
2.2 eval(执行二次解析)
 
eval先解析参数,再执行。- 适用于 动态构造的命令。
 
cmd1="ls"
cmd2="-l"
full_cmd="$cmd1 $cmd2"echo "$full_cmd"  # 只是输出 ls -l
eval "$full_cmd"  # 先解析 full_cmd 变量,再执行 ls -l
 
 
2.3 exec(替换当前进程)
 
exec不会创建新进程,执行完退出该进程
exec ls -l  # 进程被替换,执行完 ls 后 shell 进程结束
echo "This will not be executed"
 
 
2.4 shift(移动位置参数)
 
shift用于 移动脚本参数($1、$2...)。- 默认 
shift1,相当于丢弃$1,后面的参数前移。 
#!/bin/bash
echo "First: $1"
shift  # 移动参数
echo "Now First: $1"bash script.sh A B C
# 输出:
# First: A
# Now First: B
 
2.5 exit(退出 Shell 进程)
 
exit [状态码]退出当前 Shell 进程,并返回指定的状态码(默认 0)。
exit 6  # 退出 shell,并返回状态 6
 
bash myscript.sh
echo $?  # 输出 myscript.sh 退出时的返回值
 
2.6 Read命令
read 是一个非常常用的 Shell 内置命令,用来 从标准输入(通常是键盘)读取一行数据,并将其存储到指定的变量中。它的用法非常灵活,可以用于交互式输入、文件读取等场景,下面是基本用法
read name age
echo "Name: $name, Age: $age"
 
Red有很多用法,后续有时间会陆续补充完善
