• Использование функции внутри функции. Возможно ли в bash?

    xotkot
    @xotkot
    $? - это код завершения последний команды.
    Любая команда, функция или скрипт должны когда либо завершаться. Поэтому явно или неявно return или exit присутствует в них.
    www.opennet.ru/docs/RUS/bash_scripting_guide/c2105.html

    > ???Есть ли возможность указывать "выходной статус" и при этом не выходить????
    ну вот простой пример:
    blabla # несуществующая ф-я
    echo $? # возвращает код завершения 127
    
    K=0
    fn1() {
    	blabla
    	N=${?}
    	if [[ ${N} == 127 ]]
    		then K=1
    		else K=0
    	fi
    # ...
    # здесь делаем то что нужно
    	return ${K}
    }
    
    fn1
    echo $?

    выведет:
    ./sc: line 29: blabla: команда не найдена
    127
    ./sc: line 34: blabla: команда не найдена
    1
  • Что значит GPLv3+?

    xotkot
    @xotkot Автор вопроса
    то есть, если есть код под лицензией GPLv2+ то не являясь его автором можно спокойно перелицензировать новую версию программы под GPLv3 или GPLv3+ ?
  • Как настроить ftp сервер для работы с файлами через FileZilla или WinSCP?

    xotkot
    @xotkot
    а что тут ещё подробнее ?
    берёшь FileZilla, вводишь логин и пароль что используется при соединении по ssh с компом к которому хочешь присоединится, выставляешь протокол sftp и вуаля.
    Ну а дальше если нужно подстраиваешь окружение под свои нужды, вот простенький пример или вот этот.

    п.с.
    да кстати WinSCP тоже поддерживает sftp
  • Как написать цикл чтение из файла данные, разбивка данных на переменные и выполнить коннект?

    xotkot
    @xotkot
    не совсем понял чего вы добиваетесь, если ваша цель подключение по ssh путём последовательного перебора нужных параметров(хост, логин, пароль) из файла то код приведённый выше вполне с этим справляется:
    (код немного причесал для более наглядного отображения)
    % eval "$(cat x.log|awk -F';' '{print "echo \n"} {print "echo host: "$1";echo login: "$2";echo password: "$3" ;sshpass -p \""$3"\" ssh "$2"@"$1}')"
    
    host: 192.168.3.9
    login: root
    password: 12345
    ssh: connect to host 192.168.3.9 port 22: Connection refused
    
    host: 192.168.3.9
    login: root
    password: flvby
    ssh: connect to host 192.168.3.9 port 22: Connection refused
    
    host: 192.168.3.10
    login: root
    password: flv
    Permission denied, please try again.
    
    host: 192.168.3.10
    login: root
    password: flv2
    Permission denied, please try again.
    
    host: 192.168.3.11
    login: root
    password: flv
    ssh: connect to host 192.168.3.11 port 22: No route to host
    
    host: 192.168.3.12
    login: root
    password: flv
    ssh: connect to host 192.168.3.12 port 22: No route to host
  • Как удалить из файл одинаковые ip адреса?

    xotkot
    @xotkot
    попробуйте заменить сроку
    split $1 -l100 -d Log/_
    на
    split $1 -l50 -a3 -d Log/_
  • Как удалить из файл одинаковые ip адреса?

    xotkot
    @xotkot
    @miruss
    видать там какие-то ограничения в awk на размер буфера или чего то там, поэтому возникают проблемы с большими файлами когда обрабатывает только часть а остальное выводит как есть. Можно обойти это костылём или использовать другие методы.
    Если костылём то нужно порезать большой файл на части поменьше и обработать их сведя потом результат в суммирующий файл с которого уже можно получить окончательный результат. Ниже привёл скрипт:
    cat lg.sh
    #!/bin/sh
    
    fn1() {
    	awk -F";" '{print $3" "$2" "$1}' $1 |uniq -u -f2 |awk '{print $3";"$2";"$1}'
    }
    
    mkdir -p Log
    split $1 -l100 -d Log/_
    
    for i in `ls Log`
    do fn1 Log/$i >> Log/sum.log
    done
    
    fn1 Log/sum.log
    rm -r Log

    запускаем:
    ./lg.sh access.log
    но в вашем случае возможно лучше использовать другие безкостыльные методы )
    в общем смотрите сами
  • Как удалить из файл одинаковые ip адреса?

    xotkot
    @xotkot
    @dykky
    < Офигенно не эффективный код!!!
    > кстати, ваш вариант тоже не являться верхом эффективности, ведь то что вы делаете за четыре команды можно сделать и за две (смотри мой вариант несколькими постами выше)

    @miruss
    < у меня че то ен получается модифицировать скрипт под другие нужды

    awk -F";" '{print $3" "$2" "$1}' access.log |uniq -u -f2 |awk '{print $3";"$2";"$1}'
  • Как скачать arch linux и как его установить?

    xotkot
    @xotkot
    @Lici, понятно
    мой вам дружеский совет, не ставьте систему с ролинг-релизом если не можете или не хотите уделять ей хоть немного времени при обновлении. В данном случае лучше перебдеть чем недобдеть. И да, сверх идиотизмом будет обновляться утром перед работой, лучше всегда это делать когда в запасе есть немного времени для всяких непредвиденных ситуаций. Вы же не будете обновлять убунту или ей подобные дистры не имея времени в запасе на случай всякого рода чп.
    Да кстати, по поводу обновления убунту, набрёл на интересную тему на убунтофоруме Результаты установки Ubuntu 14.04 Trusty Tahr.
    Так вот если отделить котлеты от мух(чистая установка и само обновление) то получим что только около трети удалось нормально обновить систему, треть испытала разного рода трудности вплоть до полного отката, а оставшиеся просто не обновляют так как ждут первого Update-пакета(видать имеют горький опыт). А если ещё учесть и тех у кого после обновления всё на хрен сломалось или всё стало жутко тормозить и глючить что помогает только установка с нуля то ситуация выглядит ещё печальнее.
  • Как скачать arch linux и как его установить?

    xotkot
    @xotkot
    @Lici аа значит ты из потерянного поколения когда Арч мигрировал на systemd ?
  • Как скачать arch linux и как его установить?

    xotkot
    @xotkot
    ну если тебе трудно уделить пару минут в неделю на прочтение новостей перед обновлением системы для того чтобы подстраховаться от всяких неожиданностей то я думаю что дальше убунты и ей подобных тебе лучше не лезть.
  • Как скачать arch linux и как его установить?

    xotkot
    @xotkot
    попробуй форматнуть её с помощью HP_USB_Disk_Storage_FormatTool
  • Как скачать arch linux и как его установить?

    xotkot
    @xotkot
    продублирую свой комментарий к посту 0x3 выше.

    пользуюсь Арч больше 3-х лет, после обновления не разу не "улетала".
    Использую три простых правила:
    1. Обновляться не реже раз в неделю.
    2. Просматривать вывод пакмана при обновлении.
    3. Смотреть последние новости на русскоязычном или оф.сайте Арча.
    Последний пункт на мой взгляд самый важный, так как при каких-то глобальных изменениях требующих ручного вмешательства пользователя предупреждают заранее и дают подробное описание того что нужно сделать чтобы обновления прошли гладко.
  • Как скачать arch linux и как его установить?

    xotkot
    @xotkot
    пользуюсь Арч больше 3-х лет, после обновления не разу не "улетала".
    Использую три простых правила:
    1. Обновляться не реже раз в неделю.
    2. Просматривать вывод пакмана при обновлении.
    3. Смотреть последние новости на русскоязычном или оф.сайте Арча.
    Последний пункт на мой взгляд самый важный, так как при каких-то глобальных изменениях требующих ручного вмешательства пользователя предупреждают заранее и дают подробное описание того что нужно сделать чтобы обновления прошли гладко.
  • Почему не работает такая конструкция bash?

    xotkot
    @xotkot
    пару советов:
    - попробуйте "cut -c 1-17" заменить на "col"
    - awk {'print $2'} , кавычки ставятся с внешней стороны awk '{print $2}' , хотя в данном случае всё будет работать и так, но это не по фен-шую )
  • Как средствами подключённого скрипта узнать имя основного скрипта ?

    xotkot
    @xotkot Автор вопроса
    да, я знаю в баше здесь всё ок, но мне нужно это реализовать в zsh
  • Как узнать имя предыдущей команды в скрипте ?

    xotkot
    @xotkot Автор вопроса
    у меня тоже примерно так получилось:
    #!/usr/bin/bash
    set -o history
    
    echo "Последняя команда"
    history 2 |head -n1 |awk '{$1="";print}'

    вывод:
    Последняя команда
    echo "Последняя команда"

    Есть конечно пару недостатков, тут мы просматриваем не по командно а построчно что чревато для нескольких команд идущих в подряд, но это можно исправить напильником.

    Осталось завести под zsh.
  • Как узнать имя предыдущей команды в скрипте ?

    xotkot
    @xotkot Автор вопроса
    history отслеживает консоль, а мне нужно для скрипта
  • Какой дистрибутив Linux выбрать?

    xotkot
    @xotkot
    > У меня всё ещё стоит arch просто потому что мне лень ставить новую систему.
    < Как я уже говорил - Мыши плакали, кололись...

    > Стоит 45 пакетов из AUR.
    < я вроде как спрашивал сколько вы используете пакетов из АУР для работы, и если не секрет то какие.
    Да и 45 пакетов это с установленными как зависимости или только явных ?
    pacman -Qqem |wc -l

    > Если у вас не возникает необходимость использовать ipc между программами то нет.
    < 99,99% пользователей Arch вздохнули с облегчением.

    > apt умеет разрешать то что ставит в тупик pacman.
    < вы так и не привели доказательства ваших слов, а те два примера что упомянули выше свидетельствует лишь во первых о вашем нежелании хоть немного почитать вики или на крайний случай вбить в поиск(кстати ответ находиться в самых первых выдачах) перед тем как делать неизвестные вам манипуляции с системой (pacman -Syy). А во вторых, ваша невнимательность и попытка выдать преимущества pacman-а как его недостаток (про откат установки).

    > Вы бредите. Если вы ниасилили ubuntu/launchpad это ваши проблемы.
    > launchpad предоставляет удобный хостинг для пользовательсих репозиториев.
    < и в чём тут кайф ? в том что тебя ограничили в выборе хостинга и предписали использовать систему контроля версий для маргиналов ?
    Вот с Ауром и йогуртом всё проще: используй любой хостинг начиная от своего сайта и заканчивая GitHub, используй любую ну или почти любую систему контроля версий - хочешь git пожалуйста, хочешь как у маргиналов Bazaar не вопрос, и т.д. И Аур в этом случае выступает только как посредник который хранит PKGBUILD, так сказать рецепт сборки пакета откуда и чего качать и как и куда ставить. Для наглядности можно сравнить yaourt с утилитой make, а AUR с хранилищем make-файлов. Благодаря йогурту ты практически не заметишь разницы в использовании оф.реп. и Аура, а также в наборе команд что применяются в оф.утилите для управления пакетами в pacman-е.
    Аур+йогурт дают независимость и удобство в то время как launchpad ограничения и лишние сущности в системе.
    Но если взглянуть под другим углом то всё это лишь проявление двух разных концепций:
    Монолит и Модульность
    Собор и Базар
    launchpad и AUR+yaourt
    "вот в чём сила брат"

    > самые свежие версии софта приносят больше вреда чем пользы. стабильность страдает.
    < Старухи тоже говорят хороши, не такие привередливые как молодые.
    Всё это по сути дело вкуса, есть авангард и арьергард, каждый выполняет свою миссию.

    > быстро собрать систему под свои нужды проще на ubuntu/debian.
    < проще жить в доме который построил Свифт.

    > Вам нравится arch? Пользуйтесь на здоровье. В том что arch это супер-уютная система для опытных пользователей убеждайте себя.
    < Я никого не собираюсь убеждать, ни вас ни тем более себя. Просто идёт обмен опытом, у меня позитивный у вас негативный, но как говориться истинна где-то по середине.
    Мой вам дружеский совет, удаляйте Арч и ставьте Убунту пока не натворили бед,