如何使用命令行参数编写 shell 脚本将小时转换为秒

如何使用命令行参数编写 shell 脚本将小时转换为秒

大家好。我正在编写一个 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)

相关内容