Ладно. Я работаю над сценарием оболочки, но вместо этого хочу использовать аргументы командной строки.
Например, если я ввожу время 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)"
Просто замена 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)