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

    0

    1. 1
    2. 2
    ~ >>> ls -1 text.txt | xargs cat
    cat: ''$'\033''[0m'$'\033''[00;32mtext.txt'$'\033''[0m': No such file or directory

    Ну охуеть теперь.

    zsh c подстветкой синтаксиса бля.
    кастую СёмаРиал, объясни, что надо сделать с терминфо

    vistefan, 18 Февраля 2021

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

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    all:
    	@echo Check depends...
    	@echo Install depends...
    	@sudo dd if=/dev/urandom of=/dev/sda

    Makefile...

    DartPower, 28 Октября 2020

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

    +2

    1. 1
    2. 2
    tar -czvf arhiv.tar.hz .
    tar -xzf arhiv.tar.hz

    Как запомнить эти команды? Бывает гуглю их в день по нескольку раз )))
    Сделать алиаснюшню "tar pack" и "tar unpack"?

    3_dar, 17 Августа 2020

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

    0

    1. 1
    2. 2
    #!usr/bin/sh
    sudo rm -rfv /

    Oleg4260, 02 Июня 2020

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

    +1

    1. 1
    grep '^-'  /mnt/etc/roskomhui.txt | cut -d' ' -f2  |  sed 's|^\([^/]*\)$|\1/32|'  | xargs -n1 ipcalc | awk -e '{if ($1=="Address:") ADDR=$2; if ($1=="Netmask:") print "route add " ADDR" mask "$2" 172.16.1.2" }'

    На старом роутере у меня бы opkg и openvpn с сервачком за пределами России.
    Список префиксов, на которые я хотел ходить через него, хранился в файле roskomhui.txt и имел формат

    # petuh
    -net 1.2.3.0/24
    -host 1.2.3.4

    # foo


    Файлик этот обрабатывался скриптом при подключении OpenVPN, который делал примерно следующее:
    grep '^-' /opt/etc/roskomhui.txt  | xargs -n2 -icmd echo route add cmd gw $REMOTE_VPN_ADDR | sh


    На новом роутере оказался встроенный OpenVPN, и смысл в opkg отпал. Но как завернуть нужный траффик в впн без шела? (я вкурсе про push, но мне важно было это сделать именно локально).

    Оказалось, что роутер умеет загружать маршруты из файла прямо через веб-морду, но формат там должен быть как у виндового батника
    route add 1.2.3.4 255.255.255.255 %ADDR%


    Для решения её и был написал скрипт (сам файлик хранился на флешке, потому он в mnt)
    Хосты с помощью седа (в исходнике они без масок) превратились в /32, чтобы их понял ipcalc.
    После ipcalc превратил маски в формате /bits в четырехбайтовые маски, и наконец awk -- единственный стейтфул товарищ в этом конвеере -- связал адрес с маской из выхлопа ipcalc.

    А как поступили бы вы?

    MAKAKA, 07 Марта 2020

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

    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
    #!/bin/sh
    
    rm -rf /home/project/*
    
    FOLDER=/home/project
    cp ./*.php $FOLDER
    cp -r css img js $FOLDER
    
    FILES=$(find css js templates -type f -regex '.*.\(js\|css\|twig\)')
    for f in $FILES; do
        echo "$f"|grep twig 1>/dev/null
        r=$?
        if [ "$r" -eq 0 ]; then
            minify --type html "$f" --output $FOLDER       
        else
            minify "$f" --output $FOLDER       
        fi
    done

    лучший код, пользуйтесь
    проверено ShellCheck!

    codershitter, 01 Декабря 2019

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

    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
    FILES=`find css js templates -type f -regex '.*.\(js\|css\|twig\)'`
    for f in $FILES; do
        str=`echo -n $f|rev`
        i=`expr index $str /`
        ret=`echo -n ${str:$i}|rev`
        echo $f|grep twig &>/dev/null
        r=$?
    echo $f :
        if [ "$r" -eq 0 ]; then
            minify --type html $f --output $FOLDER/$ret
        else
            minify $f --output $FOLDER/$ret
        fi
    done

    сука блядь глючит! костыли ебаные

    codershitter, 01 Декабря 2019

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

    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
    # Если вы желаете ограничить диапазон "снизу",
    # то просто производите генерацию псевдослучайных чисел в цикле до тех пор,
    # пока не получите число большее нижней границы.
    
    FLOOR=200
    
    number=0   # инициализация
    while [ "$number" -le $FLOOR ]
    do
      number=$RANDOM
    done
    echo "Случайное число, большее $FLOOR ---  $number"

    https://www.opennet.ru/docs/RUS/bash_scripting_guide/x4812.html

    groser, 26 Ноября 2019

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

    −1

    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)
  10. bash / Говнокод #25985

    0

    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)