.sh中如何判断参数
时间: 2024-02-15 07:05:26 浏览: 44
在 Linux 的 .sh 程序中,可以使用条件语句来判断参数。常用的条件语句有 if、case 等。
下面是一个使用 if 判断参数并输出的示例:
```bash
#!/bin/bash
if [ $# -eq 0 ]; then
echo "没有传入参数"
else
echo "传入的参数为:$@"
fi
```
在上述代码中,使用 $@ 可以获取所有的参数。$# 表示传入的参数个数,如果没有传入参数,则 $# 的值为 0,可以使用 -eq 判断是否等于 0。如果 $# 的值不为 0,则输出所有的参数。
假设将上述代码保存为 test.sh 文件,在命令行中执行:
```
./test.sh arg1 arg2 arg3
```
则会输出:
```
传入的参数为:arg1 arg2 arg3
```
如果不传入参数,则会输出:
```
没有传入参数
```
除了 if,也可以使用 case 条件语句来判断参数。如下所示:
```bash
#!/bin/bash
case $# in
0)
echo "没有传入参数"
;;
1)
echo "传入了一个参数,参数为:$1"
;;
*)
echo "传入了多个参数,参数为:$@"
;;
esac
```
在上述代码中,使用 case 来判断 $# 的值。如果 $# 的值为 0,则输出“没有传入参数”;如果 $# 的值为 1,则输出“传入了一个参数,参数为:$1”;否则,即 $# 值大于 1,则输出“传入了多个参数,参数为:$@”。注意,case 语句需要以 esac 结尾。
假设将上述代码保存为 test.sh 文件,在命令行中执行:
```
./test.sh arg1 arg2 arg3
```
则会输出:
```
传入了多个参数,参数为:arg1 arg2 arg3
```
如果只传入一个参数,则会输出:
```
传入了一个参数,参数为:arg1
```
如果不传入参数,则会输出:
```
没有传入参数
```