Last active
June 4, 2017 21:29
-
-
Save Sammers21/8558885e974c3ea3e6a10e7627da2df7 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# ./script [time] -m [message] | |
# ./script [time] -p [programm] | |
# time format 2017-06-04T21:58:00 | |
function main(){ | |
#проверяем что подано кака минимум 3 аргемнта на вход | |
if [ -n $3 ]; then | |
# проверяем что второй аргумент или -m или -p, инчае | |
if [ ! $2 = "-p" ] && [ ! $2 = "-m" ]; then | |
# выводим сообщения | |
echo valid usage: | |
echo "./script [time] -m [message]" | |
echo "./script [time] -p [programm]" | |
echo "time format: 2017-06-04T21:58:00" | |
# завершаем программу | |
exit 0 | |
fi | |
# время в секунда на которое нужно заснуть | |
difference=$(($(date -d "$1" +%s) - $(date +%s))) | |
# если предыдущая команда завершился с кодом не 0, то значит произошла ошибка | |
# например было подано время не в вреном формате | |
if [ $? -ne 0 ]; then | |
# выводим сообщение | |
echo "time format: 2017-06-04T21:58:00" | |
# завершаем программу | |
exit 0 | |
fi | |
# выводим время в секундах на которое нужно заснуть | |
echo $difference | |
sleep $difference | |
# если в sleep завершился с кодом не 0, то значит произошла ошибка | |
# например было подано отриццательное время | |
if [ $? -ne 0 ]; then | |
echo "invalid time to sleep" | |
exit 0 | |
fi | |
# если вторым аргументом был подан флаг -m | |
if [ $2 = "-m" ]; then | |
# то удаляем 2 первых входных аргумента | |
shift | |
shift | |
# и выводим оставшиеся агрументы. т.е. все кроме двух первых | |
echo "$@" | |
else | |
# если вторым аргументом был подан флаг -p | |
# то удаляем 2 первых входных аргумента | |
shift | |
shift | |
# и запускаем ту программу переданную в остальных агрментах (3 и т.д.) | |
# $@ значит все переданные агрументы | |
$(echo $@) | |
fi | |
fi | |
} | |
# запускаем фунцию main со всем что было подано на вход скрипту | |
main $@ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment