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

65
В bash возможно ли использовать целочисленную переменную в цикле управления цикла for?

У меня есть следующий скрипт bash: #!/bin/bash upperlim=10 for i in {0..10} do echo $i done for i in {0..$upperlim} do echo $i done Первый forцикл ( без переменной upperlimв контроле цикла) работает нормально, а второй forцикл ( с переменной upperlimв контроле цикла) - нет. Есть ли способ, которым...

65
рекурсивная статистика по типам файлов в каталоге?

Я сделал очистку сайта для проекта конверсии. Я хотел бы сделать некоторую статистику по типам файлов там - например, 400 .htmlфайлов, 100 .gifи т. Д. Какой простой способ сделать это? Это должно быть рекурсивно. Редактировать: со сценарием, который выложил maxschelpzig, у меня возникли некоторые...

65
Почему моя находка не рекурсивная?

Я запускаю следующую команду, но она не выполняется рекурсивно: find . -name *.java Я знаю, что в текущем каталоге находятся файлы Java, но он выполняет findтолько текущий каталог. Я использую OS X,...

65
Ресурсы для программирования переносимых оболочек

Какие ресурсы существуют для программирования переносимых оболочек? Окончательный ответ - тестирование на всех целевых платформах, но это редко бывает практичным. Спецификация POSIX / Single UNIX - это только начало, но она не говорит вам ни об уровне поддержки каждой реализации, ни о том, какие...

64
Как проверить, является ли файл символической ссылкой на каталог?

Я могу проверить, существует ли файл и является ли он символической ссылкой с -L for file in *; do if [[ -L "$file" ]]; then echo "$file is a symlink"; else echo "$file is not a symlink"; fi done и если это каталог с -d: for file in *; do if [[ -d "$file" ]]; then echo "$file is a directory"; else...

64
Сбой сценария оболочки: Синтаксическая ошибка: «(» неожиданно

Я работал над сценарием, который автоматизирует настройку среды разработки для разработки Raspberry Pi (пошаговая информация о работе здесь ). Сценарий связан с этой статьей, но вы также можете найти его здесь . Теперь при запуске этого скрипта установите и настройте среду без ошибок, но вам...

64
Почему `[` является встроенной оболочкой, а `[[` - ключевым словом оболочки?

Насколько я знаю, [[это расширенная версия [, но я смущен, когда вижу [[в качестве ключевого слова и [отображается как встроенный. [root@server ~]# type [ [ is a shell builtin [root@server ~]# type [[ [[ is a shell keyword TLDP говорит Встроенный может быть синонимом системной команды с тем же...

64
Решение "mv: список аргументов слишком длинный"?

У меня есть папка с более чем миллионом файлов, которые нужно отсортировать, но я ничего не могу сделать, потому что mvвыводит это сообщение постоянно -bash: /bin/mv: Argument list too long Я использую эту команду для перемещения файлов без расширений: mv -- !(*.jpg|*.png|*.bmp)...

64
Как прочитать первую и последнюю строку из вывода cat?

У меня есть текстовый файл. Задача - получить первую и последнюю строку из файла после $ cat file | grep -E "1|2|3|4" | commandtoprint $ cat file 1 2 3 4 5 Нужно это без вывода кошки (только 1 и 5). ~$ cat file | tee >(head -n 1) >(wc -l) 1 2 3 4 5 5 1 Возможно awk и более короткое решение...

63
Как сделать двунаправленную трубу между двумя программами?

Каждый знает , как сделать однонаправленный трубу между двумя программами (связывают stdoutс первого и stdinот второго): first | second. Но как сделать двунаправленную трубу, т.е. перекрестную привязку stdinи stdoutдве программы? Есть ли простой способ сделать это в...

63
Что значит быть «совместимым с sh»?

Я видел фразу «совместимость с sh», обычно используемую в отношении оболочек. Я не уверен, относится ли это также к программам, которые могут запускаться из оболочек. Что означает, что оболочка или другая программа является "совместимой с sh"? Что бы это значило быть "несовместимым"? Редактировать:...

63
«Ловушка ... INT TERM EXIT» действительно необходимо?

Много примеров для trapиспользования trap ... INT TERM EXITв задачах очистки. Но действительно ли необходимо перечислять все три сигсипа? В руководстве сказано: Если SIGNAL_SPEC - EXIT (0), ARG выполняется при выходе из оболочки. что, я считаю, применимо независимо от того, закончился ли скрипт...

62
Почему SIGINT не распространяется на дочерний процесс при отправке его родительскому процессу?

Учитывая процесс оболочки (например, sh) и его дочерний процесс (например cat), как я могу имитировать поведение Ctrl+, Cиспользуя идентификатор процесса оболочки? Вот что я пробовал: Запуск shи затем cat: [user@host ~]$ sh sh-4.3$ cat test test Отправка SIGINTна catдругой терминал: [user@host ~]$...

62
Как скачать архив и распаковать его без сохранения архива на диск?

Я хотел бы скачать и распаковать архив по заданному каталогу. Вот как я это делал до сих пор: wget http://downloads.mysql.com/source/dbt2-0.37.50.3.tar.gz tar zxf dbt2-0.37.50.3.tar.gz mv dbt2-0.37.50.3 dbt2 Вместо этого я хотел бы скачать и распаковать архив на лету , без записи tar.gzна диск. Я...

62
Как проверить, может ли bash печатать цвета

Я хочу знать, есть ли способ проверить, может ли моя программа выводить вывод терминала, используя цвета или нет. При выполнении команд, например, lessи просмотре вывода из программы, которая выводит с использованием цветов, вывод отображается неправильно, как [ESC[0;32m0.052ESC[0m...

62
Не может сделать отступ heredoc, чтобы соответствовать отступу вложенности

Если есть «Проблемы Первого Мира» для сценариев, это было бы так. У меня есть следующий код в скрипте, который я обновляю: if [ $diffLines -eq 1 ]; then dateLastChanged=$(stat --format '%y' /.bbdata | awk '{print $1" "$2}' | sed 's/\.[0-9]*//g') mailx -r "Systems and Operations...

61
Почему nullglob не используется по умолчанию?

В большинстве оболочек nullglobне по умолчанию. Это означает, например, если вы запустите эту команду ls * в пустом каталоге он расширит *глобус до литерала *, а не до пустого списка аргументов. Существуют способы изменить это поведение, чтобы *в пустом каталоге возвращался пустой список...