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

Оболочка является интерфейсом командной строки Unix. Вы можете вводить команды в оболочке в интерактивном режиме или писать сценарии для автоматизации задач. Используйте этот тег для вопросов, относящихся к / bin / sh и большинству совместимых оболочек (ash, bash, ksh, zsh,…). Для сценариев оболочки с ошибками, пожалуйста, проверьте их в http://shellcheck.net перед публикацией здесь.


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


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

3
Как скачать архив и распаковать его без сохранения архива на диск?
Я хотел бы скачать и распаковать архив по заданному каталогу. Вот как я это делал до сих пор: 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 shell  pipe  tar  wget 

5
Не может сделать отступ 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 <sysadmin@[redacted].edu>" -s "Warning Stale BB …

6
Как проверить, может ли bash печатать цвета
Я хочу знать, есть ли способ проверить, может ли моя программа выводить вывод терминала, используя цвета или нет. При выполнении команд, например, lessи просмотре вывода из программы, которая выводит с использованием цветов, вывод отображается неправильно, как [ESC[0;32m0.052ESC[0m ESC[1;32m2,816.00 kbESC[0m] Спасибо
62 shell  terminal  colors 

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

3
Что делает `kill -0`?
Я недавно сталкивался с этим в сценарии оболочки. if ! kill -0 $(cat /path/to/file.pid); then ... do something ... fi Что делает kill -0 ...?
61 shell  process  kill 

1
Перенаправьте как stderr, так и stdout в / dev / null с помощью / bin / sh
Я пробовал все виды способов перенаправляют как stdoutи stderrв /dev/nullбез какого - либо успеха. У меня почти всю жизнь работает bash, с которым у меня никогда не было этой проблемы, но на этот раз в BSD я застрял /bin/sh. Что я пробовал: if ls ./python* 2> /dev/null; then echo found …

1
Как эта команда законна? «> File1 <file2 cat»
Предполагая, что file2уже существует, команда &gt; file1 &lt; file2 cat похоже копирует содержимое file2в file1. Но я не могу понять эту структуру. Я понимаю, что «Ничто» направлено на file1(создание или удаление его содержания). Тогда содержание file2направляется на file1. Почему catпосле file2? как узнать, cat file2что операнды не в правильном порядке?

2
Как перебрать строки файла?
Скажи, у меня есть этот файл: hello world hello world Эта программа #!/bin/bash for i in $(cat $1); do echo "tester: $i" done выходы tester: hello tester: world tester: hello tester: world Я хотел бы иметь forитерацию по каждой строке, игнорируя при этом пробельные символы, то есть последние две строки …

3
Шебанг, начинающийся с `//`?
Я запутался в следующем скрипте ( hello.go). //usr/bin/env go run $0 $@ ; exit package main import "fmt" func main() { fmt.Printf("hello, world\n") } Это может выполнить. (на MacOS X 10.9.5) $ chmod +x hello.go $ ./hello.go hello, world Я не слышал о Шебанге, начиная с //. И это все …



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