Вопросы с тегом «bash»

Вопросы, специфичные для GNU Bourne Again SHell, в отличие от других оболочек Bourne / POSIX. Для вопросов о оболочках Unix в целом используйте вместо этого тег / shell.

2
Как я могу работать от имени другого пользователя?
Это код bash, который должен быть запущен. Итак, сначала он заменяет пользователя на openproject, а затем запускает весь код: su openproject -c "bash -l" cd ~/openproject git checkout Gemfile.lock git pull bundle install RAILS_ENV="production" bundle exec rake db:migrate RAILS_ENV="production" bundle exec rake db:seed RAILS_ENV="production" bundle exec rake assets:precompile Я попытался …
20 bash  debian  sudo  su 

6
Как захватить сообщение об ошибке от выполненной команды?
Мне было поручено создать сценарий автоматической защиты сервера, и единственное, что им нужно, - это отчет обо всех результатах выполнения каждой команды. Я хочу сохранить сообщение об ошибке внутри строки и добавить его в текстовый файл. Допустим, я выполнил эту команду: /sbin/modprobe -n -v hfsplus Результат выполнения этого на моей …
20 bash  scripting  string 

3
Bash добавить завершающие пробелы для выравнивания строки
Мой текущий код выглядит так:, x=${y:0:40}который ограничивает длину строки до 40 символов. Если строка длиной менее 40 символов, можно ли заполнить пробелы? Так что если мой y="very short text" Я хотел бы, чтобы мой у был: y = "очень короткий текст (+25 пробелов) "
20 bash 



4
Escape переменная для использования в качестве содержимого другого скрипта
Этот вопрос не о том, как написать правильно экранированный строковый литерал. Я не смог найти ни одного связанного вопроса, который бы не касался того, как экранировать переменные для непосредственного использования в скрипте или другими программами. Моя цель - включить скрипт для генерации других скриптов. Это связано с тем, что задачи …

3
grep не выводит до EOF, если пропущен через cat
Учитывая этот минимальный пример ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; ) он выводит, LINE 1а затем, через одну секунду, выводит LINE 2, как и ожидалось . Если мы передадим это grep LINE ( echo "LINE 1" ; sleep 1 ; echo "LINE 2" ; …
19 bash  grep  pipe 

1
Как $ {! #} Работает в bash, чтобы получить последний аргумент командной строки?
Из Расширенного руководства по написанию сценариев, чтобы получить последний аргумент командной строки: Или: lastarg=${!#} это косвенная ссылка на $#переменную. Обратите внимание, что lastarg=${!$#}это не работает.
19 bash 

3
Тайна раскрытия вложенных скобок в Bash
Эта: $ echo {{a..c},{1..3}} производит это: a b c 1 2 3 Что приятно, но трудно объяснить, учитывая, что $ echo {a..c},{1..3} дает a,1 a,2 a,3 b,1 b,2 b,3 c,1 c,2 c,3 Это где-то задокументировано? Bash Reference не упоминает об этом (даже если у него есть пример , используя его).

1
echo [9876543210] отображает 1 4 5 6… почему?
Пожалуйста, объясните, почему 1 4 5 6 отображается для последних четырех эхо-операторов? Однажды я столкнулся с этим случайно, но теперь мне интересно, почему это происходит. Эти заявления работают, как и ожидалось (для меня). $ echo [ 9876543210 ] [ 9876543210 ] $ echo [237890] [237890] Эти эхо-операторы последовательно отображают 1 …

3
Что означает $ {1: 0: 2} в этом контексте?
Я смотрю на код, показанный ниже, и он проверяет ввод, если аргументы строки / столбца начинаются с или -rили -c. Что ${1:0:2}значит в этом контексте? rowArgName="-r" colArgName="-c" if [ "${1:0:2}" != $rowArgName ] && [ "${1:0:2}" != $colArgName ] then echo $correctCmdMsg >&2 exit 1 fi


3
Когда я могу использовать временный IFS для разделения поля?
В Bash, скажем, у вас есть var=a.b.c., то: $ IFS=. printf "%s\n" $var a.b.c Однако такое использование IFSвступает в силу при создании массива: $ IFS=. arr=($var) $ printf "%s\n" "${arr[@]}" a b c Это очень удобно, конечно, но где это задокументировано? Беглое прочтение разделов, посвященных массивам или разделению слов в …
19 bash 

6
Параметры в стиле dd для скрипта bash
Я хотел бы передать параметры в bash-скрипт в стиле dd. В основном я хочу ./script a=1 b=43 иметь тот же эффект, что и a=1 b=43 ./script Я думал, что смогу достичь этого с помощью: for arg in "$@"; do eval "$arg"; done Какой хороший способ гарантировать, что evalэто безопасно, то …
19 bash 

2
Как ls без рекурсии
Я пытаюсь ls некоторые файлы с шаблоном в каталоге. Я только хочу сканировать первый уровень не рекурсивный. Мой сценарий: for i in $(ls $INCOMINGDIR/*$BUSSINESSDATE*) do echo $i; done Выше команды сканирование рекурсивно. Как можно сделать это только для сканирования каталога первого уровня?
19 bash  shell-script  ls 

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