跳到主要内容

Shell_固定参数

# 例子
./test.sh a b c

echo "脚本名称: $0"
# 对应 ./test.sh 这个值。

echo "第一个参数: $1"
# 对应第一个参数a

echo "第二个参数: $2"
# 对应第二个参数b,以此类推,传入的参数多于 9 个,则不能使用 $10 来引用第 10 个参数,而是要用 ${10} 来引用

echo "参数总数: $#"
# 获取到3,统计的参数不包括$0

echo "所有参数: $*"
# 获取到 "a" "b" "c", "$*" 把所有参数合并成一个字符串

echo "所有参数 (作为数组): $@"
# 获取到 "a" "b" "c",也就是所有参数的列表, "$@" 会得到一个字符串参数数组

echo "上一个命令的退出状态码: $?"
# 可以获取到执行 ./test.sh a b c 命令后的返回值

权限 r,w,x,-,s,t

image-20240909102939660

image-20240909103926222

image-20240909110642701

image-20240909113136928

$*和$@的区别

#!/bin/bash

for arg in "$*"; do
echo "****:" $arg
done
echo --------------
for arg in "$@"; do
echo "@@@@:" $arg
done

执行上述脚本:

./testparams.sh This is a test

# 结果
****: This is a test
--------------
@@@@: This
@@@@: is
@@@@: a
@@@@: test

类似三目运算符写法