Ответы пользователя по тегу bash
  • Как ограничить поиск в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    добавить параметр к опции -depth в вашем find
    Ответ написан
  • Как убрать лишний вывод из скрипта и прописать информацию о неустановленных дисках?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    for dev in sd{a..i};do echo -e "Device $dev: \033[0;32m$(hddtemp /dev/$dev 2>/dev/null)\033[0m";done
    Ответ написан
    Комментировать
  • Как победить MV?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Проверить права доступа на папку /mnt/d/Music/

    Там может вообще диск подмонтирован как readonly
    Ответ написан
  • Как переписать Ping( с временными метками) с linux на windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Поставить под винду bash, а еще лучше git с которым идет git-bash, и не надо ничего переписывать.
    Ответ написан
    Комментировать
  • Как упростить команду в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    mv"$WhatFolder"/* $(dirname $(find "$SerialsFolder" -type f -iname "$WhatRenameFile" | head -n1 ))
    Ответ написан
    Комментировать
  • При выполнении скрипта .sh скрипт открывает новый терминал, как исполнять скрипт в текущем?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    скрипт не может открывать новый терминал, тем более если это просто echo "smth"
    новый терминал видимо открывает ваша консоль, то есть вам нужно рассказать как именно вы запускаете новый скрипт.
    Ответ написан
    Комментировать
  • Как запустить shell-команду в другом процессе (Java)?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Мой исполняемый файл при запуске ограничивают в ресурсах, моя задача - попробовать снять это ограничение.

    В линукс нельзя просто так взять и ограничить один процесс без ничего.
    Ограничивают обычно через cname, а это означает, что процесс запускается внутри своей подгруппы, и видит только те ресурсы, которые ему выделились. Если этот процесс запустит другой подпроцесс, они будут внутри той же самой группы (грубо говоря в контейнере).

    Вообще было бы хорошо уточнить смысл задачи. Это задача поставленная преподавателем, поставленная самому себе, или рабочий процесс? И кратко описать из-за чего такие требования.
    Может для другого процесса проще написать какой-то API и триггерить его запуск уже из вашего Java приложения. Таким образом другой процесс не будет дочерним.
    Ответ написан
  • Получить самую новую версию из списка?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    sort -t '.' -n -k1,1 -k2,2 -k3,3 -k4,4 YOURFILE.TXT|tail -n1
    Ответ написан
    Комментировать
  • Почему отправляются все файлы а не только те что нужны?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    а почему не так:

    scp $(find /var/www/www-root/data/www/site.ru/files/ -type f -mtime -6)  root@site2.ru:/tmp/
    Ответ написан
  • Как прочитать файл построчно в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Проблему следует решать так:

    dos2unix /home/user/list.txt
    while read; do
      ln -s "/usr/share/nginx/html/$REPLY" "/usr/share/nginx/html/tst/$REPLY"
    done < /home/user/list.txt


    P.S. кстати в твоем примере указано просто ln без ln -s, то есть ты хардлинки создаешь вместо символических ссылок.
    Ответ написан
    Комментировать
  • Как искать вхождения из списка фраз в linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    while read; do grep "$REPLY";done<file1
    Ответ написан
    Комментировать
  • Как получить вывод в рамке с переносом строк?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    MEM="Memory Usage: 277/1983MB (13.97%)"
    HDD="Disk Usage: 5/16GB (35%)"
    CPU="CPU Load: 0.00"
    
    banner() {
    max=$(echo -e "$1"|awk '{if(length>max)max=length}END{printf max}')
    echo -e "$1"|awk 'BEGIN{for(i=1;i<'$max'+4;i++){printf "#"};print "#"}{printf "# %'$max's #\n", $0}END{for(i=1;i<'$max'+4;i++){printf "#"};print "#"}'
    }
    
    banner "$MEM\n$HDD\n$CPU"


    $ banner "$MEM\n$HDD\n$CPU"
    #####################################
    # Memory Usage: 277/1983MB (13.97%) #
    #          Disk Usage: 5/16GB (35%) #
    #                    CPU Load: 0.00 #
    #####################################
    Ответ написан
    Комментировать
  • Как сравнить два файла в процентном соотношении?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Сам баш с дробными числами не работает, а bc по умолчанию имеет scale=0

    Пропишите в вашем скрипте scale=1 чтобы получить десятые доли процента, например

    bc -l <<< "scale=1;$full*$first/$second"
    Ответ написан
    Комментировать
  • Как в sed заменить строку c двойными кавычками и переменной?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    #!/bin/bash
    IP=$(wget -qO- someurl.com)
    GMT=(wget -qO- someurl.com?$IP)
    OLD="TimeZone=\"600\""
    REP="TimeZone=\"$GMT\""
    sed -i "s/$OLD/$REP/" test.txt
    
    sed  "s/TimeZone=\"[^\"]*\"/TimeZone=\"$GMT\"/g" test.txt
    Ответ написан
    Комментировать
  • Не могу понять в чём проблема в баш скрипте?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Это капец.
    Если начал учить скрипты час назад, научись писать отдельные команды синтаксически правильно, а не взять откуда-то нерабочий кусок текста и не понимать в чем дело.

    Для начала вставь свой скрипт сюда и проверь на синтаксис каждую строчку
    https://www.shellcheck.net/

    проверь в какую сторону смотрят кавычки, проставил ли ты правильно пробелы.
    И вообще, попроще пиши для старта
    Ответ написан
    Комментировать
  • K8s как запустить множество yml?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    ls -1 *.yml | xargs -n1 kubectl -f apply
    Ответ написан
    Комментировать
  • Почему служебные символы работают не везде?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Перенаправление ">" говорит о том, что ты хочешь перенаправить stdout в конкретный поток/файл.
    Но конструкция [1-5].txt это не имя файла, это wildcard, который развернется в пять файлов. А ">" у тебя один.
    То есть просто неправильный синтаксис, потому что для ">" можно указать только одно имя потока/файла.

    Читай справку о командах и понимать, где можно указать несколько файлов, а где только один.

    Говоря про "служебные символ", следует почитать документацию и различать их.
    Есть wildcards, есть variable expansion, есть regular expression, есть специальные переменные, есть команды самого баш, есть bash expansion. Зная какие к чему относится, можно понимать где и как их применять.
    Ответ написан
    Комментировать
  • Как удалить точку после домена?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    dig google.com +noall +answer|awk '{print $5" "substr($1,1,length($1)-1)}'
    Ответ написан
    Комментировать
  • Ожидание старта mysql?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    Да банально, делаешь цикл в котором выполняешь простой sql запрос раз в несколько секунд, и если он прошел успешно, выходишь из цикла.
    Можно добавить в цикл таймаут по которому завершать скрипт с ошибкой.

    p.s. А вообще надо больше деталей. Если тебе автостарт при старте системы нужен, то через systemd можно указать зависимость.
    Ответ написан
    Комментировать
  • Как в bash скрипте определить является ли файл видео и получить его разрешение?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    как часть ffmpeg проекта, есть ffprobe, им и пользуйтесь.

    ffmpeg.org/ffprobe.html

    Получить можно в разном формате. И обычный текст(ini) или csv,xml,json

    Примеры:
    $ ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of default=nw=1 "My video file.mpg" 
    width=704
    height=576


    $ ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of csv=p=0 "another vide file.mkv"
    1280,720


    $ ffprobe -v error -select_streams v:0 -show_entries stream=width,height -of json "one_more video.mkv"
    {
        "programs": [
    
        ],
        "streams": [
            {
                "width": 1152,
                "height": 480
            }
        ]
    }
    Ответ написан
    Комментировать