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

11
Почему я теряю данные при использовании этой конструкции bash pipe?

Я пытаюсь объединить несколько программ примерно так (пожалуйста, игнорируйте любые дополнительные включения, это тяжелая работа в процессе): pv -q -l -L 1 < input.csv | ./repeat <(nc "host" 1234) Где источник программы повтора выглядит следующим образом: #include <fcntl.h> #include...

11
Почему нельзя изменить порядок оператора перенаправления ввода для циклов while?

В Bash вы можете переместить операторы перенаправления ввода в начало команды: cat <<< "hello" # equivalent to <<< "hello" cat Почему вы не можете сделать то же самое для цикла while? while read -r line; do echo "$line"; done <<< "hello" # hello <<< "hello" while...

11
Почему sh (не bash) жалуется на функции, определенные в моем .bashrc?

Я получаю это, когда я открываю терминальную сессию: sh: ошибка импорта определения функции для `read.json ' sh: ошибка импорта определения функции для `ts-project ' sh не любит эти функции, потому что они выглядят так: read.json(){ :: } и ts-project(){ :: } реальный вопрос - зачем shтрогать /...

11
Bash пытается написать две подсказки оболочки?

Я смотрю на результаты работы запущенного процесса bash, подключенного к терминалу, в образовательных целях. Мой процесс bash имеет PID 2883. Я печатаю [OP@localhost ~]$ strace -e trace=openat,read,write,fork,vfork,clone,execve -p 2883 2> bash.strace В терминал. Затем я вхожу в процесс bash и...

10
Как разделить переменную $ 0, чтобы найти каталог и относительные пути в bash?

Переменная $ 0 содержит информацию о пути скрипта. Как я могу изменить информацию о пути к абсолютному пути? Я имею в виду, как обрабатывать ~,., .. или подобное? Как я могу разбить информацию о пути на каталог и имя файла? Я мог бы использовать python / perl для этого, но я хочу использовать bash,...

10
Как открыть несколько файлов с выхода `find`?

Я знаю, что могу открыть несколько файлов, найденных в директории, вот так: find -name *.foo -xargs <command> {} \; Это работает, но при попытке открыть несколько текстовых файлов в gedit одновременно, он открывает их последовательно (когда один файл закрыт, следующий открывается). Я хотел бы...

10
Gnu coreutils не работает?

Рассмотрим следующий вход для сортировки: cat > foo <<EOM D,,5014978 DD,,25 D,I,1972765530 D,Y,4223624 -,Y,71285059 YA,I,2 EOM Теперь попробуйте запустить sort foo Вывод не сортируется при попытке этого на любом из моих Linux-боксов (gnu coreutils версии 6.9-7.4). Вывод сортируется при...

10
sh запускает файлы через ssh

У меня есть несколько важных команд, которые мне нужно выполнить до запуска любой оболочки sh. Это необходимо для передачи команд SSH в команду SSH ( ssh host somecommand) и других программ, которые запускают команды. По моему .profileу меня это: ihammerhands@wreckcreations:~> cat .profile...

10
Может ли IFS (Внутренний разделитель полей) функционировать как отдельный разделитель для нескольких последовательных символов-разделителей?

Синтаксический анализ массива с использованием IFS с не-белыми пробелами создает пустые элементы. Даже использования tr -sдля сокращения нескольких разделителей до одного раздела недостаточно. Пример может объяснить проблему более четко. Есть ли способ достичь "нормальных" результатов с помощью...

10
Лучшая практика использования $? в баш?

Когда я прочитал этот ответ о $? другой вопрос приходит на ум. Есть ли лучшая практика для использования $? в баш? Давайте приведем пример: У нас есть линейный скрипт, и я хотел бы знать, что все команды были выполнены нормально. Считаете ли вы, что можно вызывать небольшую функцию (давайте назовем...

10
Найти абсолютный путь из скрипта

В сценарии я получаю $0возможный относительный путь к нему. Для преобразования в абсолют я нашел такое решение, которое не понимаю: abspath=$(cd ${0%/*} && echo $PWD/${0##*/}) Моя проблема в магии внутри ${0%/*}и ${0##*/}. Похоже, что первый извлекает имя каталога, а второй извлекает имя...

10
Запуск нескольких команд с помощью su в Bash

Я хотел бы использовать su -cдля запуска в качестве root несколько команд в целом. Я не хочу использовать дополнительный сценарий для этого. Я попробовал следующее: su root -c "tcpdump -i wlan0 -s 1500 -w CCCCCC & " -c "ls -lh" но он выполняет только lsне первый. Я попробовал следующее: su root...

10
Записать массив по умолчанию в переменную в Bash

я ожидал excludes="${excludes:-( ${default_excludes[@]} )}" быть массивом, если $excludesон пуст. К сожалению, материал после :-принимается за строку. Я пропустил некоторые искажения синтаксиса, или я должен использовать неуклюжий if [ -z "${excludes:-}" ] then excludes=( "${default_excludes[@]}" )...

10
Как присвоить значения нескольким переменным в командной строке с помощью баров

По сути, я пытаюсь выделить определенные части вывода команды оболочки для нескольких переменных, но я не знаю, как это сделать. Для простоты предположим, что команда на оболочке при выполнении печатает one two three four который может быть смоделирован с echo "one two three four" (хотя фактическая...

10
Есть ли правильный способ перечислить подкаталоги текущего каталога?

Я могу найти подкаталоги каталога по ls -d -- */ или ls -l | grep "^d" но оба они кажутся косвенными, и я думаю, что был бы стандартный способ найти только каталоги. Есть ли правильный способ сделать это? И если нет, то приведет ли это к нежелательному поведению в крайних случаях? (Символические...

10
Как выполнить строки из результата grep?

У меня есть текстовый файл с определенными инструкциями по установке, и я знаю, что могу найти уникальный случай в файле. Например, текстовый файл имеет что-то вроде: MYDIR = `find / home / user -name somedir` экспорт PERL5LIB = $ PERL5LIB: $ MYDIR В bash, как я могу выполнить строки после grep в...

10
bash: cd в последний измененный дочерний каталог

Интересно, есть ли простой и / или переносимый способ сказать «перейти на последний измененный дочерний каталог». Я могу использовать ls и awk, но, возможно, есть лучший способ. cd $( ls -ltrd */ | tail -1 | awk '{ print $8 }' ) Мне нужно выполнить команду в каталоге «выходных файлов» с сотнями...

10
Непрямой возврат всех элементов в массиве

Страница руководства Bash описывает использование ${!a}для возврата содержимого переменной, имя которой является содержимым a(уровень косвенности). Я хотел бы знать, как вернуть все элементы в массиве, используя это, т.е. a=(one two three) echo ${a[*]} возвращается one two three Я хотел бы для: b=a...

10
Как помешать root запустить скрипт

Сервер приложений Glassfish предоставляет сценарии для администрирования сервера приложений, а также запуска и остановки их, и я хотел бы запретить пользователю root запускать этот сценарий. Причина в том, что некоторые ключевые разработчики забывают администрировать сервер как непривилегированный...