Tag: bash

bash как улучшить этот скрипт

Я новичок в сценариях оболочки, и я хотел бы знать, может быть, есть лучшее решение, чем то, которое я выяснил Я хочу проверить, есть ли пользователь в списке, и если да, то сценарий должен завершиться с помощью функции exit_program: $ USER определяется как кто-то, кто входит в систему Мое решение (это работает): $IGNORE_USER=”USER1 USER2 USER3″ […]

bash echo командная строка, выполняемая в самой командной строке (не в скрипте)

В целях документации я имею в виду redirect в файл stdout и stderr из команды, которую я выполняю. Например, я бы запустил (моя команда менее тривиальна, чем псевдоним ll но, вероятно, это не имеет значения): $ ll > out-err.dat 2>&1 $ cat out-err.dat drwxr-xr-x 39 us00001 us00001 4096 jul 31 14:57 ./ drwxr-xr-x 3 root […]

Debian su – и su $ PATH различия?

$ su – Password: # echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin # exit logout $ su Password: # echo $PATH /usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games Я понятия не имею, почему / bin и / sbin не добавляются в $PATH , если я делаю просто su. Раньше так и было. Как я могу это исправить? Я заметил, что: -rw-r–r– 1 root root 0 […]

Несколько команд в sshpass

Есть ли способ использовать несколько команд в sshpass , я пробовал с комбинациями различий, но он выдает ошибку. $ sudo sshpass -p $password ssh -t -oStrictHostKeyChecking=no $username@$ipaddress << EOF command_one command_two command_three EOF Какова правильная и точная команда, пожалуйста, предоставьте мне пример, если это возможно.

Использование переменных оболочки для параметров команды

В скрипте Bash я пытаюсь сохранить параметры, которые я использую для rsync в отдельной переменной. Это прекрасно работает для простых опций (например, –recursive ), но у меня возникают проблемы с –exclude=’.*’ : $ find source source source/.bar source/foo $ rsync -rnv –exclude=’.*’ source/ dest sending incremental file list foo sent 57 bytes received 19 bytes […]

понимание терминологии .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 […]

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