Задать вопрос
Ответы пользователя по тегу bash
  • Что означает на Linux скрипте перед командой символ $?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Хм. наверное можно было еще безграмотнее задать вопрос, если постараться. Рюсски нэ радной, даа?

    - перед командой в терминале - просто симвод приглашения, означает что терминал готов принять команду. Задается переменной окружения 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
    //COPY01 EXEC PGM=IEBGENER
    После квадратной скобки открывающей и перед квадратной скобкой закрывающей обязательно должны стоять пробелы. То есть:
    # Неверно, выдаст ошибку
    if [$length -ge 25]; then
     echo "Oooo, too big..."
    fi
    
    # Верно
    if [ $length -ge 25 ]; then
     echo "Oooo, too big..."
    fi
    Ответ написан
    Комментировать
  • Ubuntu- bash скрипты и вставка в них команд?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Ладно, не поленюсь, напишу ответ, хотя обычно на такие вопросы не отвечаю.

    Это не код.
    Это не скрипт.
    Это не 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
    //COPY01 EXEC PGM=IEBGENER
    Достаточно любого текстового редактора. Во встроенном редакторе mc есть подсветка синтаксиса. Диалоговых отладчиков нет - только пакетный (встроенный в сам bash).

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

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Ну, я обычно беру дату файла, перевожу его в 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
    //COPY01 EXEC PGM=IEBGENER
    #!/bin/bash
    
    [Здесь вставляется текст команды]

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Русским (ну, хорошо, английским) по белому - доступ запрещен. Либо Вы указываете неверный пароль, либо неверного юзера.

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Можно запустить скрипт с трассировкой и посмотреть, какую команду он при этом выполняет и причем тут /s
    Ответ написан
    Комментировать
  • Может кто помочь перевести Bash в Bat?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Это невозможно. У bash куда больше возможностей, чем у bat. Разве только в PS/VBS перевести.

    Кроме того, в скрипте ошибка - then тут совершенно не при делах
    Ответ написан
    Комментировать
  • Как решить задачу?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    man tail

    Подсказка была дана вовсе не зря :)
    Ответ написан
    Комментировать
  • Можно ли для администрирования Linux обойтись без BASH?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Для программиста - может быть. Для прикладника, которому не интересно и никогда не будет интересно, как работает система - ему это банально не надо.
    Для админа - нет. Bash - это не скриптовый язык, а способ общения с системой. Никакие "модно-стильно-молодежные" языки не дают такой скорости работы.
    Не, решать разумеется Вам - хотите во всем разбираться сами - как всегда you are welcome. Советы друг другу админы обычно дают на bash :)
    Ответ написан
    3 комментария
  • Как сделать скрипт с вопросом?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Если просто вопрос на консоль:
    #!/bin/bash
    
    echo -n "What is answer for The Ultimate Question of Life, the Universe, and Everything? : "
    read $answer
    
    echo "Of course, it is $answer!"
    Ответ написан
  • Как обработать пустой аргумент в функции?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Проверять длины строк local_include и local_exclude и формировать из них одну строку, которую и подсовывать tar
    Ответ написан
    Комментировать
  • Bash. Как убрать ошибку синтаксиса?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Bash не умеет вещественные числа, только целые. Выводите операцию в какой-нибудь калькулятор и читайте с него данные.
    Ответ написан
    Комментировать
  • Возможно ли в man отобразить содержание страницы?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    В консольном - не знаю, можно или нет. В Х много-мнгого лет использую tkman - там можно
    Ответ написан
    Комментировать
  • Как отредактировать .env файл наиболее нативно?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Зачем таким морочиться? mcedit/nano/vim - наше все
    Ответ написан
  • Минимизация CentOS?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Пардон, уважаемый, но это бред. EL6/EL7 - энтерпрайзный дистриб, работающий по принципу "поставил и забыл", в нем не надо ничего "минимизировать".
    Берется гента, слака, LFS (для самых упоротых) - и начинается ее развертывание. Вот там можно получить систему, в которой не будет вообще ничего.
    Для сохранения работы браузера тебе нужно будет кучу всего - множество Х-вых либ, тулкитов и прочего (не считая того, что приволочет с собой бразуер).
    Ответ написан
    Комментировать
  • Как написать bash скрипт который выполняет все файлы что в папке?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Едрить, старый топорный метод:
    cd /blabla
    list=`ls -1 *.fastq`
    
    for onelist in $list
     do
       fastqc $onelist -o /home/outfiles
     done
    Ответ написан
    Комментировать
  • Bash скрипты. Где и с чего начать?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    С задачи, разумеется :) Писать скрипт ради скрипта - скучно...
    Ответ написан
    Комментировать