Задать вопрос
  • Правильное использование diff?

    xotkot
    @xotkot
    Adamos, несколько колонок это если не указывать параметры
    у меня по крайней мере -3 выводит только одну колонку

    п.с.
    $ comm --version
    comm (GNU coreutils) 8.32
    Copyright (C) 2020 Free Software Foundation, Inc.
    ...
  • Как с помощью цикла while, команды dig вывести в файл ips.txt A-записи домена, после чего на следующей строке PTR-запись IP?

    xotkot
    @xotkot
    ngalaktionov,
    я лучше буду руководствоваться не заданиями, а целями.

    давайте пробежимся по условию вашего задания

    если присмотреться к условию задания и к вашему решению то оно либо не совсем корректно сформулировано либо решение не отвечает оному.
    во первых, нужно сохранить результирующие данные в файл ips.txt, а вы куда сохранили ? results.txt ? серьёзно ?

    во вторых, в описании приведён пример итогового файла:
    173.194.222.139
    lo-in-f113.1e100.net.

    то есть сначала идёт IP а ниже его PTR-запись, у вас же в выводе программы будет наоборот, сначала PTR а после IP, это кстати оговорено и в условии ниже:
    сохранить в ips.txt каждый ip-адресс, и PTR-запись , соответствующую этому ip(строкой ниже).

    то есть нужно сохранить PTR-запись строкой ниже, после IP.
  • Как сделать возможным вывод программы в консоль?

    xotkot
    @xotkot
    gohellp,
    кстати, в данном случае можно упустить wait так как
    tail -f файл
    или
    cat fifo-файл
    и так будут удерживать главную программу от закрытия.
    но если вы чтение тоже захотите запустить в фоновом(&) потоке
    cat $LOG | analysisLogs &
    # ... код
    wait

    чтобы ниже написать еще какой-то код, то тогда нужно про него(wait) не забывать.
  • Какие дрова ставить в убунте 20.04 на ноуте чтоб все нормально работало?

    xotkot
    @xotkot
    идеально конечно было бы перейти на wayland тем более что В Ubuntu 21.04 решено включить Wayland по умолчанию правда тока не для nvidia которая с вяленым плохо дружат.
    для Arch/Manjaro вяленого для браузеров нужно отдельно включать, в принципе как и для других дистров:
    Chromium#Native_Wayland_support
    Firefox#Wayland

    чтобы проверить работает ли графическая программа под wayland(W) или иксами(X) я обычно для этого запускаю в консоли xwininfo после чего если навести курсор на графический интерфейс нужной программы и щелкнуть по ней мышью то если это W то ничего не выйдет, а если X то выведет информацию в консоли.

    п.с.
    How to enable/disable wayland on Ubuntu 20.04 Desktop
  • Как сделать возможным вывод программы в консоль?

    xotkot
    @xotkot
    gohellp, можно конечно и через переменную сделать но это будет не так красиво да и не по феншую, кстати здесь мы пишем в ОЗУ так как /tmp у большинства дистрибутивов примонтирован в оперативной памяти.
    Если же не хочется вообще писать данные на диск или в озу, так как логи обычно склонны к накоплению если их не чистить да или просто если ненужны, то можно просто использовать именованный канал(FIFO-файлы) с которым можно работать как с файлом(читать/писать) но при этом он будет выступать просто в роли промежуточного буфера, для этого в нашей программе нужно поменять всего две строчки(создать именованный канал и вместо tail использовать обычный cat )

    #!/usr/bin/env bash
    
    # бот1 и бот2 просто постоянно выводят рандомно числа от 0 до 9 с интервалом в 2 секунды
    bot1(){
    	while true; do
    		echo "Bot1: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    bot2(){
    	while true; do
    		echo "Bot2: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    # обший лог-файл куда будем писать логи от ботов
    LOG=/tmp/botsLog.txt
    
    # удаляем лог-файл
    rm -rf $LOG
    
    # создаём именнованный канал (FIFO-файл)
    mkfifo $LOG
    
    # запускаем ботов паралельно и в фоновом(&) режиме, а также начинаем выводит от них информацию на консоль и писать в общий файл
    bot1 | tee -a $LOG &
    sleep 1
    bot2 | tee -a $LOG &
    
    # функция анализа поступающих данных
    analysisLogs() {
    	# запускаем постоянное построчное чтение поступающих данных в функцию
    	while read -r data; do
    		# здесь мы задаём фильтры и то что выполнить если сработает условие
    		case "$data" in
    			"Bot1: 0" ) echo "Бот 1 выдал ноль"
    				;;
    			"Bot2: 0" ) echo "Бот 2 выдал ноль"
    				;;
    		esac
    	done
    }
    
    # читаем файл(FIFO-файл) и передаём появляющиеся данные в функцию analysisLogs
    cat $LOG | analysisLogs 
    
    # это необходимо чтобы главная программа преждевременно не завершилась пока не завершаться запушенные в ней фоновые(&) потоки
    wait
    
    exit
  • Как сделать возможным вывод программы в консоль?

    xotkot
    @xotkot
    gohellp, писать и наблюдать логи это не проблема, например это можно сделать через тот же tee который выводит на консоль и сразу пишет в файл, на а затем сам лог-файл можно уже анализировать.
    node main.js | tee -a /path/to/log/file
    q="$IFS";IFS=$'\n';nodeLogsArr=(cat /path/to/log/file);IFS="$q"
    ...


    но если нужно в динамике - одновременно выводить на консоль, писать в файл и тут же сразу построчно анализировать поступающую информацию, то тут чуть сложнее, хоть и не немного, вот небольшой пример:
    #!/usr/bin/env bash
    
    # функции бот1 и бот2 которые постоянно выводят рандомно числа от 0 до 9 с интервалом в 2 секунды
    bot1(){
    	while true; do
    		echo "Bot1: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    bot2(){
    	while true; do
    		echo "Bot2: $[RANDOM%10]"
    		sleep 2
    	done
    }
    
    # обший лог-файл куда будем писать логи от ботов
    LOG=/tmp/botsLog.txt
    
    # удаляем лог-файл (если ненужно то закоментирвоать)
    rm -rf $LOG
    
    # запускаем ботов в фоновом(&) режиме, 
    # а также начинаем выводит поступающую от них информацию на консоль и писать в общий лог-файл
    bot1 | tee -a $LOG &
    sleep 1
    bot2 | tee -a $LOG &
    
    # функция анализа лог-файла (потока)
    analysisLogs() {
    	# запускаем постоянное построчное чтение поступающих данных в функцию
    	while read -r data; do
    		# здесь мы задаём фильтры и то что выполнить если совпадёт условие
    		case "$data" in
    			"Bot1: 0" ) echo "Бот 1 выдал ноль"
    				;;
    			"Bot2: 0" ) echo "Бот 2 выдал ноль"
    				;;
    		esac
    	done
    }
    
    # tail выводит поступающие данные по мере роста лог-файла (мониторит)
    # в данном случае мы передаём появляющиеся данные из файла в функцию analysisLogs
    tail -f $LOG | analysisLogs 
    
    # это необходимо чтобы главная программа преждевременно не завершилась 
    # пока не завершаться запущенные в ней фоновые(&) потоки
    wait
    
    exit

    с комментариями думаю будет понятней
    ctrl+c завершить скрипт

    upd: немного обновил скрипт
  • Как сделать возможным вывод программы в консоль?

    xotkot
    @xotkot
    gohellp,
    не совсем понятно, ваша программа(node main.js) генерирует данные постоянно(в потоке) и их нужно обрабатывать(в потоке) или она отработала один раз и сгенерировала данные а потом эти данные мы уже обрабатываем ?
  • Как сделать возможным вывод программы в консоль?

    xotkot
    @xotkot
    во первых, q=IFS замените на q="$IFS"
    во вторых,
    моё способ получения данных с программы на даёт ей выводить эти данные в консоль

    у вас каждая строка из вывода node main.js забивается в массив, что у вас не получается вывести на консоль ? объясните толком

    п.с.
    [["logs"==*"Process exit with code:"*]]
    что это ? Regex ? тогда это делается по другому:
    [[ "$logs" =~ РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ ]]
  • Проблема в процессоре?

    xotkot
    @xotkot
    с какой вероятностью это проблема процессора?

    вероятность 50/50 - либо проблема процессора либо нет

    а если серьезно, проц/память гнали ? биос пробовали сбрасывать ? температуру проца смотрели ?
  • Почему не выпускают железный антивирус?? Который хранится в плате, которая ставится в материнскую плату??

    xotkot
    @xotkot
    а можно еще отдельную плату для тоталкомандера, фотошопа, видеоредактора ...
  • Может ли замкнуть ноутбук из-за оперативной памяти?

    xotkot
    @xotkot
    данный проц до 32 гиг может выдержать.
    контроллер памяти уже лет 10 как все производители вынесли с мат.платы(северный мост) на кристал процессора и от мат.платы зависит разве что вид и количество слотов памяти, ну и реализация в настройках биоса разумеется.
  • Как и куда bash убирает элемент массива?

    xotkot
    @xotkot
    gohellp,
    во первых, тебя запутал вывод переменной nodeLogs:
    nodeLogs="$(node $path/main.js)"
            echo $nodeLogs

    если ты наверняка не уверен в выводе то лучше всегда его закавычивать:
    nodeLogs='test
    test1'
    echo $nodeLogs

    выведет
    test test1
    а если вот так:
    nodeLogs='test
    test1'
    echo "$nodeLogs"

    то выведет уже как нужно:
    test
    test1

    где можно видеть что переменная занимает несколько строк.

    во вторых,
    IFS="\n" read -a nodeLogsArr <<< "$nodeLogs"
                echo "${nodeLogsArr[1]}"

    выведет пустоту, так как в массив попадёт только первая строка test
    для наглядности
    IFS="\n" read -a nodeLogsArr <<< "$nodeLogs"
                echo "${nodeLogsArr[0]}"
                echo "${nodeLogsArr[1]}"

    выведет только тест:
    test

    по ссылке на гайд, что вы дали выше, разбирается обычная строка без переноса, я сильно не разбирался в этом, но похоже в данном случае IFS и read в сочетании с <<< не обрабатывает много строчные переменные, отсюда и выходит что массив будет состоять только из первого элемента ${nodeLogsArr[0]} (значение первой строки) и равный test.

    п.с.
    по поводу read и многострок есть описание ниже в том же гайде
    2: Даже если бы вы использовали это решение с односимвольным разделителем (например, запятой отдельно, то есть без пробела или другого багажа), если значение $string переменной, как оказалось, содержит какие-либо LF(перевод строки), то read будет останавливать обработку, как только он встретит первый LF. Встроенный read обрабатывает только одну строку на вызов. Это верно, даже если вы передаете или перенаправляете ввод только в read оператор, как мы делаем в этом примере с механизмом здесь-строки , и, следовательно, необработанный ввод гарантированно будет потерян. Код, обеспечивающий работу read встроенного модуля, не знает о потоке данных в его структуре команд.

    Вы можете утверждать, что это вряд ли вызовет проблему, но, тем не менее, это скрытая опасность, которую следует избегать, если это возможно. Это связано с тем, что read встроенный модуль фактически выполняет два уровня разбиения ввода: сначала на строки, а затем на поля. Поскольку OP требует только одного уровня разбиения, такое использование read встроенной функции не подходит, и мы должны избегать этого.
  • Как попасть в папку загрузок через консоль?

    xotkot
    @xotkot
    webratas,
    а что дает знак доллара?

    если вы про $HOME то знак доллара ставят перед переменной, то есть в данном случае переменная HOME хранит в себе путь к домашнему каталогу текущего пользователя.

    А можно мюда поставить генту пакетов,и превратить это из кастрированного гов..в нормальный дистр?

    у вас хромобук ? если да то думаю нужно гуглить хромобук(железо) + линукс, лет 5 назад помню менял биос на одном из хромобуков чтобы можно было установить линукс/виндовс.
  • Почему Git Bash некорректно передает кириллицу в запросе и Yandex Speech kit не распознает ее?

    xotkot
    @xotkot
    Текст, который нужно озвучить, в кодировке UTF-8.

    возможно не та кодировка
    закиньте в скрипт, конвертируйте его в UTF-8, а потом запустите его
  • Как удалить все паки с файлами на всех сайтах на сервере ubuntu Lunix?

    xotkot
    @xotkot
    хочется знать точно) что бы не снести лишнего)

    $ mkdir -p a/{b1,b2,b3}/{tmp,x}
    $ tree a
    a
    ├── b1
    │   ├── tmp
    │   └── x
    ├── b2
    │   ├── tmp
    │   └── x
    └── b3
        ├── tmp
        └── x
    
    $ rm -rf a/*/tmp
    $ tree a
    a
    ├── b1
    │   └── x
    ├── b2
    │   └── x
    └── b3
        └── x
  • Копирование файлов в linux?

    xotkot
    @xotkot
    можно и без звездочки