Tag: bash

понимание терминологии .sh файлов и cmake

Я пытаюсь использовать cmake и OpenGL для изучения компьютерной графики, и в учебник включен файл run.sh, предназначенный для компиляции / сборки программ cpp. Вот код: #!/bin/bash #calls cd build #cmake .. -DSRC && make argument EMBEDDED=`echo $2` DIRECTORY=`echo $1 |cut -d’/’ -f1` FILENAME=`echo $1 |cut -d’/’ -f2 |cut -d’.’ -f1 | sed -e “s|/|_|g”` TARGET=${FILENAME} […]

Какова концепция наименьшего совпадения подстрок в Unix Shell?

Я использую следующий скрипт для Shortest Sub-string Match в обработке строк. filename=”bash.string.txt” echo ${filename#*.} Это дает следующий вывод. string.txt Вот объяснение приведенного выше примера (ссылка: https://www.thegeekstuff.com/2010/07/bash-string-manipulation ): Приведенный выше пример удаляет самое короткое совпадение $ substring с начала $ string. В первом эхо-запросе подстрока ‘*.’ сопоставляет символы и точку, и # удаляет из начала строки, […]

Является ли $ PROMPT_COMMAND разделенным двоеточиями списком?

Я хочу, чтобы моя история команд на всех вкладках и windowsх терминала была записана в .bash_history, установив PROMPT_COMMAND в .profile: export PROMPT_COMMAND=”history -a; history -c; history -r;$PROMPT_COMMAND” Однако когда я проверяю, установлена ​​ли эта переменная среды, я получаю: echo $PROMPT_COMMAND printf “\033]0;%s@%s:%s\007” “${USER}” “${HOSTNAME%%.*}” “${PWD/#$HOME/\~}” Будет ли экспорт PROMPT_COMMAND подобным образом перезаписывать мой существующий список […]

Bash: использовать функцию поиска exec путем сортировки двух аргументов файла

Допустим, я хочу сравнить файлы с одинаковым именем файла между этими двумя каталогами /tmp/datadir/dir1/dir2/ а также /datadir/dir1/dir2/ Требуется отсортировать их перед сравнением. В данный момент я нахожусь в каталоге /tmp , и я попытался запустить эту find с опцией exec : find datadir -type f -exec sdiff -s <( sort {} ) <( sort "/"{} […]

/ etc / bashrc переопределяет мои настройки в домашней .bashrc

у меня есть следующий код для моего приглашения в .bashrc в домашней директории: PS1_TIME=’\033[01;31m\]\t \033[01;32m\]’ PS1_USERNAME=’\[\e[1;36m\]\u\e[1;37m\]@\e[1;32m\]\h\[\033[00m\]’ PS1_LOCATION=’\[\033[01;34m\]\w\[\033[00m\]’ PS1=$PS1_TIME$PS1_USERNAME’:’$PS1_LOCATION’\n\$ ‘ PS2=’\[\033[01;36m\]>’ У меня также есть следующая конфигурация в / etc / bashrc # are we an interactive shell? if [ “$PS1” ]; then if [ -z “$PROMPT_COMMAND” ]; then case $TERM in xterm*|vte*) if [ -e […]

Как я могу периодически записывать стек dir и задания оболочки, не занимая оболочку?

У меня есть сценарий $ cat my.sh #! /bin/bash – dirs -l > /tmp/test/dirs_record jobs > /tmp/test/jobs_record Поэтому, когда я source ./my.sh , он выведет стек dir и задания в вызывающей оболочке. У меня есть другой скрипт schedule.sh #! /bin/bash – while : ; do eval “${@}” ; sleep 10 ; done Запуск source schedule.sh […]

Как правильно обрабатывать SIGINT для интерактивных и неинтерактивных скриптов Bash?

Backgound Я прочитал пост об обработке сигнала SIGINT , но до сих пор не понимаю, как правильно обрабатывать его в коде, который будет получен и использован как интерактивными, так и неинтерактивными shellми. Я приведу упрощенный пример моего сценария и задам вопросы по конкретным частям. пример У меня есть скрипт с полезными функциями, который предназначен для […]

Как повторить цикл n раз в Bash

У меня ниже сценарий, как: if [file exists]; then exit elif recheck if file exist (max 10 times) if found exit else recheck again as per counter fi

Как извлечь из тройника?

Я хочу проверить, выводит ли моя команда «rerun» (и затем повторно), но я также хочу отобразить весь вывод. Я знаю, что я мог бы использовать один из них: command | tee >(grep rerun) command | grep rerun Первый выводит весь вывод, как и ожидалось, но я не могу использовать его как условие, потому что он […]

Индексный диапазон массива не позволяет перебирать новую строку в bash

Я работаю над простым bash-скриптом, который исправляет проблему дублирования имен в retropie. Сам скрипт захватывает любое имя, которое упоминается более одного раза в файле gameslist.xml, а затем сохраняет его в массиве для последующего использования. Я заканчиваю цикл по этому массиву в индексах, например, так: pi@retropie:~ $ for game in ${game_array[@]:0:10} ; do echo $game; done […]

Linux и Unix - лучшая ОС в мире.