Запитання з тегом «shell»

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


3
“Пастка… ІНТЕРМІН-ВИХІД” дійсно потрібна?
Багато прикладів для trapвикористання trap ... INT TERM EXITв задачах очищення. Але чи справді потрібно перерахувати всі три ознаки? Посібник говорить: Якщо SIGNAL_SPEC є EXIT (0) ARG виконується при виході з оболонки. що, на мою думку, застосовується, чи нормально завершено сценарій, чи завершено, оскільки він отримав SIGINTабо SIGTERM. Експеримент також …
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на диск. Я думаю, що це можливо шляхом передачі wgetрезультатів tarта tarпризначення …
62 shell  pipe  tar  wget 

5
Не можна відступити гередок відповідно до відступу гніздування
Якщо є сценарії "Першої світової" для сценаріїв, це було б все. У сценарію, який я оновлюю, у мене є такий код: 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
Як перевірити, чи може баш друкувати кольори
Я хочу знати, чи є спосіб перевірити, чи може моя програма виводити термінальний висновок, використовуючи кольори чи ні. Виконуючи такі команди, як 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без будь - якого успіху. Я майже все життя керую басом, з яким у мене ніколи не виникало цього питання, але я один раз в BSD я затримався /bin/sh. Що я спробував: if ls ./python* 2> /dev/null; then echo found Python …

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ітерація над кожним рядком була окремо ігнорована пробілами, тобто останні два рядки слід замінити на tester: …

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 Я не чув про shebang починаючи з //. І він все ще …


5
Як запустити команду, яка передбачає перенаправлення або з'єднання з sudo?
Я намагаюся слідувати тому, що я вважаю найкращим методом використання sudo замість кореневого акаунта. Я виконую просту операцію з файлом concat, наприклад: sudo echo 'clock_hctosys="YES"' &gt;&gt; /etc/conf.d/hwclock Це не вдається праворуч від "&gt;&gt;", який він працює як звичайний користувач. Додавання додаткових sudos також не вдається (очікувана поведінка з моменту передачі …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.