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

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

2
запуск сценарію з „. "Та" джерело "
Мені було цікаво, чи еквівалентні наступні два способи запуску bash script? . ./myScript.sh source myScript.sh Чи обидва вони використовують вміст скрипту замість запуску сценарію, тобто не створюють допоміжну оболонку для запуску сценарію?

11
Як я можу друкувати рядки з файлу назад (без використання "tac")?
Це питання було переміщено із переповнення стека, оскільки на нього можна відповісти на Unix & Linux Stack Exchange. Мігрували 8 років тому . Я хочу надрукувати рядки з файлу назад, не використовуючи tacкоманди. Чи є якесь інше рішення зробити таку справу з басом?

2
Bash цикл "for" без частини "в foo bar ..."
Нещодавно я дивився на якийсь код, який мене бентежив, бо він працює, і я цього не очікував. Код зводиться до цього прикладу #!/bin/bash for var; do echo "$var" done При запуску з командним рядком аргументи друкує їх $ ./test a b c a b c Саме це, що (для мене) …

4
Чому мені потрібно використовувати CD "$ @" замість CD "$ 1" під час написання обгортки для CD?
В іншому місці я бачив CD-функцію, як показано нижче: cd() { builtin cd "$@" } чому рекомендується використовувати $@замість $1? Я створив тестовий каталог "r st" і назвав скрипт, що містить цю функцію, і він працював у будь-якому випадку $ . cdtest.sh "r st" але $ . cdtest.sh r stне …

3
Видаліть ^ C, коли CTRL + C
Чи є якийсь спосіб видалити, ^Cколи ви потрапили CTRL+ Cу оболонку, включіть Red Red Hat Enterprise Linux 6 ("Сантьяго")? Я маю дозвіл редагувати свій власний .bash_profile.
25 shell 

2
Який портативний (POSIX) спосіб досягти заміни процесу?
Деякі оболонки, як-от bash, підтримують Process Substitution, який є способом подання результату процесу у вигляді файлу, наприклад: $ diff <(sort file1) <(sort file2) Однак ця конструкція не є POSIX і, отже, не портативна. Як може обробляти підміна бути досягнутий в POSIX співдружню чином (тобто той , який працює в /bin/sh) …

2
Відкриття командного рядка в текстовому редакторі - як це називається?
Один з моїх улюблених трюків у Bash - це коли я відкриваю командний рядок у текстовому редакторі. Я роблю це (у режимі vi) натисканням ESC v. Коли я це роблю, те, що є в моєму командному рядку, тепер відображається у моєму виборі $ EDITOR. Потім я можу редагувати команду так, …

2
Чи є проблеми з дефісами у функціях, псевдонімах та виконавчих файлах?
Під час мого тестування (у Bash та Z Shell) я не бачив проблем із визначенням функцій чи псевдонімів або виконуваних скриптів оболонки, які мають дефіси в імені, але я не впевнений, що це буде добре у всіх оболонках та у всіх випадках використання . Я хотів би зробити це через …
25 bash  shell  zsh  ksh  csh 

4
Помилка сценарію Bash з рядками з шляхами, які мають пробіли та символи
У мене виникають проблеми з тим, як звалити основи сценаріїв Баша. Ось що я маю досі: #!/bin/bash FILES="/home/john/my directory/*.txt" for f in "${FILES}" do echo "${f}" done Все, що я хочу зробити, це перерахувати всі .txtфайли в forциклі, щоб я міг робити з ними речі. Але простір у my directoryзірці …

3
shellcheck радить не використовувати базове ім'я: чому?
Я випробовую шелчек . У мене є щось подібне basename "${OPENSSL}" і я отримую наступну пропозицію Use parameter expansion instead, such as ${var##*/}. З практичної точки зору я не бачу різниці $ export OPENSSL=/opt/local/bin/openssl $ basename ${OPENSSL} openssl $ echo ${OPENSSL##*/} openssl Оскільки basenameє в специфікаціях POSIX , я не …

2
Де вилка () на вилковій бомбі: () {: |: &};:?
Попередження: Виконання цієї команди в більшості оболонок призведе до порушення роботи системи, яка потребує примусового вимикання для виправлення Я розумію рекурсивну функцію :(){ :|: & };:і те, що вона робить. Але я не знаю, куди дзвонить система вилки. Я не впевнений, але підозрюю в трубі |.

2
Видалення всіх пробілів, вкладок, нових рядків тощо зі змінної?
Це помилка, яку я отримую, і вона провалюється через змінну, значення якої повинно бути 2 (я отримую це за допомогою a select * from tabel). У цій змінній я отримую пробіли. + 0 != 2 ./setjobs[19]: 0: not found. Як видалити всі ці пробіли чи новий рядок із цієї змінної? …
25 shell  sed  tr  whitespace  newlines 

6
Чи є спосіб встановити розмір списку історії в bash більше 5000 рядків?
Це питання було переміщено із переповнення стека, оскільки на нього можна відповісти на Unix & Linux Stack Exchange. Мігрували 8 років тому . Незалежно від того, наскільки я встановив, що HISTSIZEзмінна середовища буде більшою за 5000, під час друку списку історії за допомогою historyвбудованого друкується лише останні 5000 команд. Мені …
25 linux  bash  shell 



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