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

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

1
Несподівана поведінка відступу, коли я встановлюю термінал в режимі "необроблений" - чому це відбувається?
Виходячи з того, що я прочитав, коли термінал знаходиться в сирому режимі, символи не обробляються драйвером терміналу, а надсилаються прямо наскрізь. Я встановив термінал в сирому режимі, використовуючи команду stty raw, і я помітив, що вихід кожного разу з відступом праворуч, поки не буде більше місця. Це те, що я …
27 linux  shell  terminal 

2
Помилка тесту дужки оболонки, коли рядок є лівою дужкою
Я раніше був впевнений у тому, що цитування рядків - це завжди хороша практика, щоб уникнути розбору оболонки. Потім я натрапив на це: $ x='(' $ [ "$x" = '1' -a "$y" = '1' ] bash: [: `)' expected, found 1 Намагаючись ізолювати проблему, отримуючи ту ж помилку: $ [ …
27 shell  test 

2
Різниця між 'ls' та 'echo $ (ls)'
Розглянемо два зразки оболонок $ ls myDoc.html SomeDirectory someDoc.txt і $ echo $(ls) myDoc.html SomeDirectory someDoc.txt Перший виконує, lsякий, наскільки я розумію, додає вміст поточної робочої директорії до stdoutфайлу (що і показує термінал). Це правильно? Друга приймає значення lsкоманди (що означає вміст поточної робочої директорії) і друкує її у stdoutфайл. …
27 shell 

2
Перевірте довжину змінної
Я повинен перевірити довжину читання змінної (мій скрипт обмежений п’ятьма вставленими символами), я думаю про щось подібне: #!/bin/bash read string check=${#string} echo $check if [ $check -ge 5 ]; then echo "error" ; exit else echo "done" fi чи є більш «елегантне» рішення?
27 bash  shell  string 

4
Чому не існує команди оболонки для створення файлів?
Увага будь-ласка: Я не запитую, як зробити файл з командного рядка! Я touchроками використовую для створення файлів, не звертаючи уваги, що його головне призначення - це щось інше. Якщо ви хочете створити файл з командного рядка, існує стільки можливостей: touch foo.bar > foo.bar cat > foo.bar echo -n > foo.bar …

4
Чи дозволено оболонці оптимізувати непотрібні команди закінчення?
Якщо оболонці запропоновано виконати ймовірно марну ( або частково непотрібну ) команду, відому для завершення, наприклад cat hugeregularfile.txt > /dev/null, чи може вона пропустити виконання цієї команди ( або виконати більш дешевий еквівалент, скажімо, touch -a hugeregularfile.txt )? Більш загально, чи оболонка схожа на компілятори C тим, що вона може …

6
Чому я не можу перенаправити вихідну назву шляху з однієї команди на "cd"?
Я намагаюся змусити cdприйняти ім’я каталогу, перенаправлене на нього з іншої команди. Жоден із цих методів не працює: $ echo $HOME | cd $ echo $HOME | xargs cd Це працює: $ cd $(echo $HOME) Чому перший набір команд не працює, а є й інші, які також не справляються таким …

8
У чому полягає корисність команди: scripting shell, якщо вона явно нічого не робить?
У відповіді на це запитання про коментарі в сценарії оболонок вказується, що :це команда "null", яка явно нічого не робить (але не використовується для коментарів). Яка була б корисність команди, яка абсолютно нічого не робить?

4
Тестування, чи змінна порожня в сценарії оболонки
Я бачив таку методику, яку багато разів використовували на різних оболонках, щоб перевірити, чи змінна порожня: if [ "x$1" = "x" ]; then # Variable is empty fi Чи є якісь переваги щодо використання цього над більш канонічним if [ -z "$1" ]? Чи може це бути проблемою переносимості?


12
Linux - команда для переліку файлів (крім ls)
Це питання було переміщено із переповнення стека, оскільки на нього можна відповісти на Unix & Linux Stack Exchange. Мігрували 8 років тому . Уявіть, що ви працювали над системою, і хтось випадково видалив lsкоманду ( /bin/ls). Як ви могли отримати список файлів у поточному каталозі? Спробуй це. Я спробував багато …
27 shell  command-line  ls 

4
Як вказати символи за допомогою шістнадцяткових кодів у `grep`?
Це питання було переміщено із переповнення стека, оскільки на нього можна відповісти на Unix & Linux Stack Exchange. Мігрували 8 років тому . Я використовую наступну команду для позначення діапазону набору символів для шістнадцяткового коду 0900 (замість अ) до 097F (замість व). Як я можу використовувати шістнадцятковий код замість अ …

3
Як я можу виконати трубу?
Я хочу до timeкоманди, яка складається з двох окремих команд з одним висновком трубопроводу до іншого. Наприклад, розглянемо два сценарії нижче: $ cat foo.sh #!/bin/sh sleep 4 $ cat bar.sh #!/bin/sh sleep 2 Тепер, як я можу змусити timeповідомити про витрачений час foo.sh | bar.sh(і так, я знаю, що тут …
27 bash  shell  pipe  time 

2
Де встановлюється за замовчуванням змінна середовище TERM?
Коли я відкриваю вікно терміналу з емулятором терміналу GNOME у графічному графічному інтерфейсі на робочому столі, змінна середовище оболонки TERM за замовчуванням відповідає значенню xterm. Якщо я використовую CTL+ ALT+ F1для переходу до консольного вікна TTY і echo $TERMвстановлено значення linux. Моя мотивація запитати - те, що всередині мого ~/.bashrcфайлу …

3
Як відлунювати "єдину цитату", коли за допомогою однієї цитати загортати спеціальні символи в оболонку?
Я читаю підручник із оболонки сьогодні з http://www.tutorialspoint.com/unix/unix-quoting-mechanisms.htm У якій він згадує: Якщо в рядку для виведення з’являється одна лапка, ви не повинні ставити всю рядок в межах однієї лапки, замість цього ви повинні передувати це за допомогою косої риски () таким чином: echo 'It\'s Shell Programming' Я спробував це …
26 shell  quoting 

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