Вопросы с тегом «shell-script»

Вопросы о сценариях оболочки, исполняемых файлах, которые интерпретируются оболочкой (bash, zsh и т. Д.).

3
Как запустить сценарий с другого пути и узнать путь сценария?
Мне нужно запустить скрипт, который обращается к файлу по тому же пути, в котором он находится. Например: у меня есть скрипт /home/me/folder/script.sh, и этот скрипт будет обращаться к файлу /home/me/folder/myfile. Поскольку файл находится в том же пути сценария, я просто использую имя myfile, а не полный путь. Но если я …

1
Преобразование html-таблицы в ncurses-подобную ascii-таблицу?
У меня есть некоторая документация в таблице HTML. Я хочу преобразовать таблицу в таблицу ascii, как вы видите, когда получаете результат командной строки mysql, например так: +------------+------------+ | header | header | +------------+------------+ | cell data | cell data | +------------+------------+ | cell data | cell data | +------------+------------+ ... …

3
Можно ли заставить скрипты использовать псевдонимы вместо команд?
У меня есть псевдоним для команды (я настраиваю среду разработки Python) alias python=~/virtualenv/bin/python так что я могу бежать ~/virtualenv/bin/python, просто набрав python. Теперь в моем проекте есть сценарий оболочки, который работает, например: #!/bin/sh python run-project.py Могу ли я заставить скрипт использовать мой псевдоним pythonвместо найденного в pythonнем $PATH, без внесения …

4
Копировать / переименовать несколько файлов с помощью регулярного выражения (сценарий оболочки)
У меня есть коллекция файлов, соответствующих шаблону, например «assignment02.cc», «assignment02.h», «assignment02.txt» и т. Д. Я хотел бы скопировать / переименовать эти файлы в «assignment03.cc», «assignment03». h ',' assignment03.txt 'и т. д. Я подозреваю, что это должно быть прямо с использованием сценария оболочки и sed. Пока что у меня есть: OLD_NO=$1 …

1
Причина использования ksh -eq
Последняя версия ksh устаревает с использованием -eqвнутри [[ ]]блоков, предпочитая (( ))вместо этого. Почему это? Я не могу найти документацию о преимуществах по (( ))сравнению с [[ ]]другими, и я нахожу, что синтаксис значительно более очевиден. Например: #!/bin/ksh var=1 if [[ $var -eq 1 ]] then echo ALPHA fi дает …

4
Существует ли дистрибутивное программное обеспечение для управления конфигурацией?
Я не хочу маркировать себя определенными модулями менеджера конфигурации, такими как aptмодуль или yumмодуль Ansible . Существует ли программное обеспечение для управления дистрибутивной конфигурацией или хотя бы одно с дистрибутивным кодом для установки следующих пакетов для Arch Linux ? Я спрашиваю об этом, потому что я не нашел подходящей роли …

3
Сглаживание иерархии каталогов с сохранением имен каталогов в новом имени каталога
Я в основном хочу пойти из этого: . ├── Alan Walker │ ├── Different World │ │ ├── 01 Intro.mp3 │ │ ├── 02 Lost Control.mp3 │ │ └── cover.jpg │ └── Same World │ ├── 01 Intro.mp3 │ └── 02 Found Control.mp3 ├── Aurora │ └── Infections Of A …

5
Как запустить часть скрипта с ограниченными правами?
У меня следующая проблема: На каждой машине, на которой работает Postgresql, есть специальный пользователь postgres . Этот пользователь имеет административный доступ к серверу базы данных. Теперь я хочу написать скрипт Bash, который выполняет команду базы данных с psql в качестве пользователя postgres (psql должен выполняться как пользователь postgres , а …

6
Как мы можем использовать несколько переменных в одном цикле for в сценарии оболочки?
Я реализую как код ниже, используя для цикла, но неправильный вывод после запуска сценария. for i in `awk -F"|" '{print $1}' $INPUTFILE`, j in `awk -F"|" '{print $2}' $INPUTFILE` do echo $i:$j done Пожалуйста, помогите мне использовать несколько переменных в одном цикле for в скрипте оболочки.

4
Если еще, Awk NR: Как удалить заголовок раздела таблицы, где нет записей
Я пытаюсь обобщить таблицу данных, которая меняется каждый день. Я уже суммировал таблицу, чтобы отображать только строки с записями, которые больше 30. Однако в некоторые дни в исходной таблице нет записей больше 30. Когда это происходит, мне не нужен весь раздел, который пуст в сводке. Как мне тогда удалить весь …

1
Запуск сценариев компиляции, только если исходный файл более поздний, чем скомпилированная программа
Я пытаюсь сделать, это создать скрипт bash, который будет запускать другой скрипт bash для компиляции некоторых программ, только если источник изменился. Пока у меня есть способ получить метки времени для каждого файла в секундах с эпохи J2000: #get a list of the source timestamps sourceTimes=$(stat -f "%Sm" -t "%s" *.f) …

4
grep файл журнала, начиная с определенного времени и до конца файла
У меня есть файл журнала, который имеет дату и время в начале каждой строки. Мне нужно искать файл журнала, начиная с определенного времени до конца файла. Например: Starting point: July 29 2018 21:00:00 End point : end of file Я обеспокоен тем, что даже если шаблон July 29 2018 21:00:00не …

3
Объединить повторный префикс
У меня есть файл журнала, как: Bug123:c:SomeComment Bug222:c:SomeOtherComment Bug123:c:SecondComment Мне нужно произвести: Bug123 SomeComment SecondComment Bug222 SomeComment Используя bash, я не могу придумать способ сделать это простым способом. Есть идеи?

2
Как отключить USB-флешку от скрипта, который находится на USB-флешке?
Как я могу размонтировать usbstick прямо из скрипта, который убивает себя. Поскольку я запускаю скрипт с флешки, невозможно просто размонтировать его, потому что всегда есть ошибка: устройство или ресурс заняты. Итак, какой самый простой способ: я должен выполнить сценарий на компьютере через мой сценарий прямо перед тем, как он убьет …

1
Несколько FIFOS по SSH
Сценарий оболочки допускает несколько файловых дескрипторов (до 9 для соответствия POSIX, но даже больше для bash): $ install -m 755 /dev/stdin /tmp/test <<\EOF #!/bin/sh echo hi1 >&1 echo hi2 >&2 echo hi3 >&3 echo hi4 >&4 EOF $ /tmp/test 1> /tmp/1 2> /tmp/2 3> /tmp/3 4> /tmp/4 $ cat /tmp/1 …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.