大家好。我正在编写一个 shell 脚本,但我想使用命令行参数。
例如,如果我输入时间 2 小时,输出应该是 7200 秒。这是我目前得到的结果,但它使用的是读取而不是参数。我如何将其重写为命令行参数?
seconds=0
echo -n "Enter number of seconds : "
read seconds
hours=$((seconds / 3600))
seconds=$((seconds % 3600))
minutes=$((seconds / 60))
seconds=$((seconds % 60))
echo "$hours hour(s) $minutes minute(s) $seconds second(s)"
答案1
只需替换seconds
为$1
,它将匹配传递给脚本的第一个参数。
如果您想指定输入的单位,那么您可以参考$2
此。笔记:if
我现在无法测试这些语句,语法可能不正确:
if [ $2 == "minutes" ]; then
seconds=$(($1*60))
elif [ $2 == "hours" ]; then
seconds=$(($1*3600))
else
seconds=$1
fi
hours=$((seconds / 3600))
seconds=$((seconds % 3600))
minutes=$((seconds / 60))
echo "$hours hour(s) $minutes minute(s) $seconds second(s)"
用法:
$ ./time.sh 7200
2 hour(s) 0 minute(s) 0 second(s)
$ ./time.sh 2 hours
2 hour(s) 0 minute(s) 0 second(s)