• Стоит ли учиться писать скрипты на bash?

    @abcd0x00
    Скриптов не так много, их как-то неудобно хранить и бэкапить.
    Зато много функций, которые закидываются в инициализационный файл.
    И вот они-то и используются постоянно.

    Когда внешний интернет пропадает
    Код
    # Print popup message
    # Say(message, seconds)
    Say()
    {
        kdialog --passivepopup "$1" ${2:-3}
    }
    
    # Ping server until it wakes up
    # Connect([site="www.yandex.ru"
    #         [, count=1
    #         [, interval=3
    #         [, message="connected"]]]])
    Connect()
    {
        local site="www.yandex.ru"
        local count=1
        local interval=3
        local message="connected"
    
        [ "$1" = "--help" ] && {
            echo "usage: $FUNCNAME [site[, count[, interval[, message]]]]"
            echo "       $FUNCNAME $site $count $interval $message"
            return 1
        } 1>&2
        [ -n "$1" ] && site="$1"
        [ -n "$2" ] && count="$2"
        [ -n "$3" ] && interval="$3"
        [ -n "$4" ] && message="$4"
    
        while ! ping -c $count "$site"; do
            sleep $interval;
        done
        Say "$message"
    }



    Когда надо клип с YouTube скачать
    Код
    # Download YouTube video in selected format
    # Ytf(url, ofile[, fmt=18])
    Ytf()
    {
        [ $# -eq 0 -o "$1" = "--help" ] && {
            echo "usage: $FUNCNAME url ofile [fmtn=18]"
            echo "       $FUNCNAME http://youtube 12345.flv"
            echo "       $FUNCNAME http://youtube 12345.flv 19"
            return 1
        } 1>&2
        n=${3:-18}
        youtube-dl -c -f "$n" "$1" -o "$2"
    }



    Иногда нужно размер файла узнать
    Код
    # Check access to url like a browser
    # SpiderB(url[, agent])
    SpiderB()
    {
        agent=${2:-Wget}
        wget --spider --user-agent="$agent" "$1"
    }

    Ответ написан
    Комментировать