1. bash / Говнокод #26019

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    #!/bin/sh
    IFS=:
    echo "Login\tUID"
    while read LOGIN _ UID _;
    do
      echo "$LOGIN\t$UID"
    done < /etc/passwd

    давайте обсуждать шелл-программирование

    MAKAKA, 07 Ноября 2019

    Комментарии (61)
  2. bash / Говнокод #25985

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    set -e
    
    myfunc() {
      echo "START"
      v=$(asdasdsd 1 2 3)
      echo "FINISH"
    }
    
    myfunc && echo "OK"

    Выводит:

    START
    ./b.sh: line 5: asdasdsd: command not found
    FINISH
    OK

    asdasdsd - несуществующая команда, вызывающая падение скрипта

    Помогите сделать так, чтобы ошибку можно было поймать, и чтобы до echo "FINISH" не доходило.
    Уже всё перепробовал. Нерабочие вореанты просьба не предлагать.



    Вот так работает правильно
    set -e

    myfunc() {
    echo "START"
    v=$(asdasdsd 1 2 3)
    echo "FINISH"
    }

    myfunc


    Выводит:
    START
    ./a.sh: line 5: asdasdsd: command not found

    Но мне нужно ошибку перехватить.

    guestinxo, 22 Октября 2019

    Комментарии (23)
  3. bash / Говнокод #25782

    0

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    Как наебнуть дистрибутив, читайте бесплатно без регистрации и СМС. 
    Способ от Oleg'а: Каряво обновить.
    
    1) Идем на https://en.opensuse.org/SDB:System_upgrade, делаем все по инструкции.
    2) Качаем 1.6 ГБ пакетов и ждем установки
    3) На системном разделе в 50 гигов заканчивается место почти за 10% до конца установки
    4) ctrl+C
    
    А почему я решил обновить его именно сейчас?
    Да потому что mariadb 10.2 поддерживающая JSON поля тянет зависимости вплоть до glibc.
    А я уже один раз установил более свежую glibc в debian, лучше этого больше никогда не повторять.
    В общем, если надо обновлять пакет - то обновляй с дистрибутивом вместе, все равно именно так и поставляют, такая вот логика.
    
    https://software.opensuse.org/package/mariadb
    
    Ну может еще пошаманю посижу, удалю весь мусор идущий в "start menu" и запущу апгрейд по новой, но точно не сейчас.
    Потому что надо дописывать код.
    
    Вот же я лох.

    OlegUP, 29 Августа 2019

    Комментарии (27)
  4. bash / Говнокод #25683

    0

    1. 1
    2. 2
    if [[ $(git log -n 1 --format=%D HEAD) == *"merge"* ]]; then
        sed -i "s/GIT_COMMIT\(.*\)/GIT_COMMIT=$(git rev-list HEAD | sed -n 2p)/" env.list

    goose123, 20 Июня 2019

    Комментарии (4)
  5. bash / Говнокод #25373

    +1

    1. 1
    jopa | parasha

    Допустим jopa бесконечно срёт в STDOUT.
    parasha это всё читает из STDIN.
    Что будет делать ОС, если параша не будет успевать читать высеры?
    Держать в памяти? Сохранять на диск?

    Perevedi_na_PHP, 12 Февраля 2019

    Комментарии (113)
  6. bash / Говнокод #25222

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    [ERROR] The compilation of ocaml-base-compiler failed at "/home/me/.opam/opam-init/hooks/sandbox.sh build ./configure -prefix /home/me/.opam/ocaml-base-compiler.4.02.3 -with-debug-runtime".
    
    #=== ERROR while compiling ocaml-base-compiler.4.02.3 =========================#
    # context     2.0.0 | linux/x86_64 |  | https://opam.ocaml.org#12c8601e
    # path        ~/.opam/ocaml-base-compiler.4.02.3/.opam-switch/build/ocaml-base-compiler.4.02.3
    # command     ~/.opam/opam-init/hooks/sandbox.sh build ./configure -prefix /home/me/.opam/ocaml-base-compiler.4.02.3 -with-debug-runtime
    # exit-code   2
    # env-file    /tmp/opam-me-3195/ocaml-base-compiler-3195-d6d332.env
    # output-file /tmp/opam-me-3195/ocaml-base-compiler-3195-d6d332.out
    ### output ###
    # ./configure: line 195: rm: command not found
    # ./configure: line 196: touch: command not found
    # ../gnu/config.guess: line 35: sed: command not found
    # ../gnu/config.guess: line 1364: mkdir: command not found
    # ../gnu/config.guess: line 1364: mkdir: command not found
    # : cannot create a temporary directory in /tmp
    # [ERROR!] Cannot guess host type. You must specify one with the -host option.

    ^ ...И так там со всем.
    Кто там хотел попробовать "NixOS"? Могу поделиться впечатлениями: если вы надеятесь, что в этой оси можно будет пользоваться привычными "autotools", "opam" и "cabal", то фиг там. Из-за сломанного FHS ебаться с "Nix" придётся с первой минуты. cast @Роман

    CHayT, 25 Декабря 2018

    Комментарии (39)
  7. bash / Говнокод #25122

    −1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    names="com.termux io.twaik.lorie rubberbigpepper.Orientator"
    if test ! -e /realproc/cmdline
    then
    echo Mounting realproc
    mount -o remount,rw none /
    mkdir /realproc
    mount -t proc none /realproc
    fi
    
    tail -f /dev/null|am monitor| while read line
    do
    echo "$line"
    for n in $names
    do
    for p in `pidof $n`
    do
    if test -e /proc/$p/oom_adj
    then
    echo Masking pid $p
    mount -t tmpfs -o size=4k none /proc/$p/
    for f in /realproc/$p/*
    do ln -s $f /proc/$p
    done
    rm /proc/$p/oom_*
    fi
    echo Setting oom adj for $n $p, was $(cat /realproc/$p/oom_adj)
    echo -17 > /realproc/$p/oom_adj
    done
    done
    done

    достал oom killer.

    Где тут shell в языках?

    mittorn, 27 Ноября 2018

    Комментарии (0)
  8. bash / Говнокод #25086

    −2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    function SymlinkNextStunnelConfig {
        OLDIFS=$IFS
        IFS=$'\n'
        stunnelConfigs=($(find ${STUNNEL_CONFIG_D} -regex ".*\.conf$"))
        IFS=$OLDIFS
    
        if [[ -f ${CURRENT_STUNNEL_CONF} ]]; then
            currentConfig=$(readlink -f ${CURRENT_STUNNEL_CONF})
        else
            currentConfig=""
        fi
    
        if [[ ${#stunnelConfigs[@]} -eq 0 ]]; then
            echo "No config found in ${STUNNEL_CONFIG_D}"
            exit 6
        elif [[ ${#stunnelConfigs[@]} -eq 1 ]]; then
            nextConfig=${stunnelConfigs[0]}
        else {
            echo "ZAEBALO. DELAY SYMLINK VRUCHNUYU!"
        }
        fi
    
        if [[ -L ${CURRENT_STUNNEL_CONF} ]]; then
            rm -f ${CURRENT_STUNNEL_CONF}
        fi
    
        ln -s ${stunnelConfigs[0]} ${CURRENT_STUNNEL_CONF}
    }

    Нашёл старую какашку, запостил перед удалением.

    fluttr, 13 Ноября 2018

    Комментарии (127)
  9. bash / Говнокод #24732

    0

    1. 1
    2. 2
    echo $TTY
    cat /dev/pts/5

    Открываем два терминала, смотрим у каждого $TTY, и делаем у каждого cat на TTY противоположного терминала.
    Получается очень простой локальный чат. Наверное, если использовать какую-нибудь сетевую фигню, так можно сделать интернет-чат.

    vistefan, 07 Сентября 2018

    Комментарии (9)
  10. bash / Говнокод #24281

    −2

    1. 1
    echo $(printf '1\xff0.0.0.0:0\0\\gamedir\\valve' |nc -u ms.xash.su 27010 -w 1 | od -j6 -t x1 -An -w6 |sed -s 's/\ /\ 0x/g'|while read line; do printf '%d.%d.%d.%d' $(echo $line|cut -d ' ' -f1-4) ; echo \ $(( $(printf %d $(echo $line|cut -d ' ' -f5))*256 + $(printf %d $(echo $line|cut -d ' ' -f6)) )); done| while read line1; do printf \\xff\\xff\\xff\\xffinfo\ 48|nc -w 1 -u $line1 |sed -e s/\\\\/\\\ /g -e "s/\xff\xff\xff\xffinfo/_br_$line1/g" & done;sleep 2s;echo)|sed -e s/_br_/\\n/g

    Работаем с бинарными протоколами однострочно

    mittorn, 17 Мая 2018

    Комментарии (12)