命令替换(圆括弧用法),随机数和 expr 命令

命令替换的两种格式:
Linux 命令
$( Linux 命令)
例子:
echo ps -ef|grep httpd
echo $(ps -ef|grep httpd)

echo "ps -ef|grep httpd
echo “$(ps -ef|grep httpd)”

生成随机数的特殊变量

echo $RANDOM 范围是: [0, 32767

expr:通用的表达式计算命令

表达式中参数与操作符必须以空格分开,表达式中的运算可以是算术运算,比较运算,字符串运算和逻辑运算。

expr 5 % 3   #5除以三取余数
expr 5 \* 3  # 乘法符号必须被转义
basename dirname 取文件名和路径名

特殊变量总览

变量含义示例值
$0脚本文件名./script.sh
$1 – $9第1-9个参数$1 是第一个参数
${n}第n个参数(n>=10)${10} 是第10个参数
$#参数个数3
$*所有参数(作为一个字符串)"arg1 arg2 arg3"
$@所有参数(作为独立字符串)"arg1" "arg2" "arg3"
$$当前脚本的 PID12345
$!最后一个后台进程的 PID12346
$?上一条命令的退出状态0(成功)或非0(失败)
$-当前 shell 的选项标志himBH
#!/bin/bash
# 测试所有特殊变量

echo "脚本名: \$0 = $0"
echo "参数个数: \$# = $#"
echo "第一个参数: \$1 = $1"
echo "第二个参数: \$2 = $2"
echo "第十个参数: \${10} = ${10}"
echo "所有参数作为字符串: \$* = $*"
echo "所有参数作为独立: \$@ = $@"
echo "当前脚本 PID: \$\$ = $$"
echo "上一条命令状态: \$? = $?"
echo "当前 shell 选项: \$- = $-"

# 测试 $!
sleep 10 &
echo "最后一个后台 PID: \$! = $!"

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注