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

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Обычно я напрямую код не подсказываю, но тут все просто, как полено:

    _newcrl=`date -r $file1 +%s`
    _oldcrl=`date -r $file2 +%s`
    
    if [ $_newcrl -gt $_oldcrl ]; then
    # тут делаем чегой-то
    fi
    Ответ написан
    Комментировать
  • Как в bash разбить строку?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    #!/bin/bash
    str="/usr/local/bin/blabla"
    str1=${str%/*}
    echo "[$str1]"
    str2=${str##*/}
    echo "[$str2]"

    Принцип понятен? Адаптируете под себя
    Ответ написан
  • Как хранить и управлять большим количеством скриптов под разные задачи?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Окей, гугл.
    Что такое VCS, зачем он и какие они бывают?
    Ответ написан
    Комментировать
  • Как переписать данный кусок кода под BASH?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Взять и переписать. Операторы циклов, условные, сравнения, разбора строк в bash есть :)
    Ответ написан
    Комментировать
  • Как реализовать ввод значения как часть параметра?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Формировать кусками командную строку и при запуске собирать из кусков.
    Ответ написан
    Комментировать
  • Как задать выполнение скрипта bash по собственному расписанию?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    В кроне насколько я знаю - нельзя. Придется проверять непосредственно в скрипте
    Ответ написан
    Комментировать
  • Как извлечь имя директории из переменной?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Разумеется. Правда я бы сделал вот так:
    cd "/Volumes/$name"
    В чем разница? Если у Вас в name строка "мама ела раму маша мыла рому" - в Вашем варианте будет выполнена команда cd /Volumes/мама, что вряд ли то, что задумывалось :)
    Ответ написан
  • Как установить pip на bash консоли если отсутствует sudo?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Купил я хостинг

    Что-что купили? Хостинговый бизнес? Потому что другого смысла во фразе "купил я хостинг" - нет. Если же Вы стали клиентом хостинга, то во-первых не "купил", а "взял в аренду", а во вторых не "хостинг" а отдельную папочку (потому что хостинг, как бизнес можно и в аренду взять :) ). То есть Вы там не босс, а просто мелкий рядовой сотрудник - с чего Вы решили, что у Вас есть права что-то ставить в систему?
    Поставить можно только к себе (см. ответ uvelichitel ), а про sudo лучше сразу забыть - никто и никогда Вам не даст прав админа на хостинге.
    Ответ написан
  • Как перенаправить трафик?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    И причем тут bash? И винда?
    Ответ написан
    Комментировать
  • Разобраться с параметром скрипта Linux?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Вай, как спалился-то! "Затем Вы ищете строки..." :)

    В чем проблема-то?

    Считал содержимое файла.
    Построчно разобрал.
    Внутри проверки каждой строки - еще один разбор по символу # и проверка, отобралось ли что-то
    Вывод результата

    Все, садись, пять.

    Школота такая школота. Потом будет спрашивать как устроиться эникейщиком. А когда озадачат написать что-то подобное, но не в качестве учебного примера - придет в ужас...
    Ответ написан
    Комментировать
  • Есть ли интерактивные обучающие скрипты/дистрибутивы по Linux?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Чувак, поставь генту :) Когда она у тебя заработает - вот это будет упражненьище!
    Ответ написан
    Комментировать
  • Что означает на Linux скрипте перед командой символ $?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Хм. наверное можно было еще безграмотнее задать вопрос, если постараться. Рюсски нэ радной, даа?

    - перед командой в терминале - просто симвод приглашения, означает что терминал готов принять команду. Задается переменной окружения PS1, в которую можно загнать довольно развесистую конструкцию - вот например:
    mch=`hostname -s`
    PS1='\[\033[01;32m\]${mch:q}:\[\033[01;34m\][$USER]\[\033[01;36m\] \!>\[\033[00;38m\] '

    - в скрипте - $$ - содержит PID скрипта, а сам $ - просто символ, с которого начинается переменная в случае, если нужно взять ее занчение

    man bash
    info bash
    Ответ написан
    Комментировать
  • Сравнить время в bash?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    После квадратной скобки открывающей и перед квадратной скобкой закрывающей обязательно должны стоять пробелы. То есть:
    # Неверно, выдаст ошибку
    if [$length -ge 25]; then
     echo "Oooo, too big..."
    fi
    
    # Верно
    if [ $length -ge 25 ]; then
     echo "Oooo, too big..."
    fi
    Ответ написан
    Комментировать
  • Ubuntu- bash скрипты и вставка в них команд?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ладно, не поленюсь, напишу ответ, хотя обычно на такие вопросы не отвечаю.

    Это не код.
    Это не скрипт.
    Это не bash.

    Это какая-то бредовая каша из непонятно чего. Хотя задачка довольно простая. Но проблемы у Вас начинаются прямо с постановки.
    - Домашний каталог - не обязательно в /home, он указывается в записи юзера в /etc/passwd
    - Права на домашний каталог - не обязательно $user:$user, как правило это $user:$usergroup

    Cкрипт может выглядеть примерно так (использованные команды я обьяснять не буду - по каждой есть man, и более обьемные руководства). Да, я всегда использую Bash версии 1.х
    #!/bin/sh
    
    user=$1 # Это некорректно, здесь нужна проверка на то, передан ли аргумент, только для примера
      uinfo=`getent passwd $user`
      bla=`echo $uinfo | awk 'BEGIN {FS=":"} \
            {printf "uname=%s;uid=%s;ugid=%s;uhome=%s",$1,$3,$4,$6}'`
      eval $bla
    # После этого блока у нас есть переменные uname, uid, ugid и uhome, которые
    # если юзер есть, заполнены данными, а если нет - то пустые
    
    if [ ${#uname} -ne 0 ]; then
      echo "Username exist"
      # Мы предположили, что uhome заполнен, но на самом деле это нужно проверять
     else
       echo "No username"
       # Здесь команды на создание юзера
    fi
    
    if [ -d $uhome ]; then
      echo "Homedir exist"
     else
       echo "No homedir"
       mkdir $uhome
       chown $uid:$ugid $uhome
    fi
    Ответ написан
    8 комментариев
  • Что и как в bash?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Достаточно любого текстового редактора. Во встроенном редакторе mc есть подсветка синтаксиса. Диалоговых отладчиков нет - только пакетный (встроенный в сам bash).

    Cначала советую внимательно прочитать man bash.
    Ответ написан
    Комментировать
  • GCC не найден. Что делать?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Довольно странно ожидать наличия gcc... на windows, не правда ли? Наверное сначала надо его поставить, а если он уже стоит, попробовать перейти в тот каталог, где он находится и запустить его. Если стартует - добавить этот каталог в PATH (и потом скорее всего придется перегрузиться).
    Ответ написан
  • Как сравнить даты двух файлов?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Ну, я обычно беру дату файла, перевожу его в UTC, потом также беру дату второго файла - и тупо сравниваю
    Вот кусок скрипта, которым я CRL на сервере обновляю
    # Take last modification date of newly downloaded CRL file as UTC time
    _newcrl=`date -r $storedir/$crlfile +%s`
    
    # Take last modification date of stored CRL file as UTC time
    _oldcrl=`date -r $cadir/$crlfile +%s`
    
    # When CRL file is missed, install fake file with modification date Jan 1 1970 00:00
    if [ ! -f $cadir/$crlfile ]; then
      touch -t 197001010000 $cadir/$crlfile
    fi
    
    # If file on CA store is never than file in their own store - we had have
    # publish new CRL and must upload it to server
    if [ $_newcrl -gt $_oldcrl ]; then
            [тут мы что-то делаем]
    fi
    Ответ написан
    Комментировать
  • Как в linux создавать (script -bash файл с данной командой )? Как он должен выглядит? Так #!/bin/bash hikka -threads 200 -check -shoots pics?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    #!/bin/bash
    
    [Здесь вставляется текст команды]

    Вот только вставлять Вам пока нечего - сборка не прошла, скорее всего потому что хидеров не хватает
    Ответ написан
    8 комментариев
  • Почему не проходит авторизация в MySql из bash script?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Русским (ну, хорошо, английским) по белому - доступ запрещен. Либо Вы указываете неверный пароль, либо неверного юзера.

    Начать надо с ручного захода под данным юзером:
    # mysql -u test123456 -p
    и посмотреть результат. Если зашли - пробуйте команды в ручном режиме. Еще полезно включить general log - он правда гадит здорово, но узкие места показывает.
    Ответ написан
  • /usr/bin/bash: /s: No such file or directory В чем проблема?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Можно запустить скрипт с трассировкой и посмотреть, какую команду он при этом выполняет и причем тут /s
    Ответ написан
    Комментировать