函数可以读取用户传入的变量。例如$1 $2
表示第一和第二个参数。$@
表示所有变量
例如:
#!/usr/bin/env bash
function hello(){
for NAME in $@
do
echo "Hello $NAME"
done
}
hello Json Dan Ryan John
结果:
Hello Json
Hello Dan
Hello Ryan
Hello John
read
命令获取用户输入如果你希望在脚本运行时动态地从用户获取输入,可以使用 read
命令。
示例脚本 input.sh
:
#!/bin/bash
# 提示用户输入
echo "Enter your name:"
read name
# 提示用户输入年龄
echo "Enter your age:"
read age
echo "Hello, $name. You are $age years old."
执行脚本:
bash input.sh
示例运行:
Enter your name:
Alice
Enter your age:
30
Hello, Alice. You are 30 years old.
有时你可能需要处理更多的命令行选项和参数。可以使用 getopts
来解析这些选项。
示例脚本 options.sh
:
#!/bin/bash
while getopts "u:p:" opt; do
case $opt in
u) username=$OPTARG ;;
p) password=$OPTARG ;;
\?) echo "Invalid option -$OPTARG" >&2 ;;
esac
done
echo "Username: $username"
echo "Password: $password"
执行脚本:
bash options.sh -u myuser -p mypass
输出:
Username: myuser
Password: mypass
可以在脚本中检查某个参数是否已提供,通常通过判断 $#
(参数数量)来实现。
示例脚本 check_params.sh
:
#!/bin/bash
if [ $# -lt 2 ]; then
echo "Usage: $0 <param1> <param2>"
exit 1
fi
param1=$1
param2=$2
echo "Param1: $param1"
echo "Param2: $param2"
执行脚本(参数不足时):
bash check_params.sh
输出:
Usage: ./check_params.sh <param1> <param2>