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

Питання, характерні для Bourne Again SHell від GNU, на відміну від інших оболонок Bourne / POSIX. Для питань щодо оболонок Unix взагалі використовуйте тег / shell.

4
програйте список файлів, крім випадків, коли вони порожні
Я думав, що це буде просто - але це виявляється складніше, ніж я очікував. Я хочу повторити всі файли певного типу в каталозі, тому я записую це: #!/bin/bash for fname in *.zip ; do echo current file is ${fname} done Це працює , якщо в каталозі є принаймні один відповідний …
33 bash  parameter 


2
Як отримати вихід у "екран" на сценарій?
У мене screenзапущений екземпляр, і мені потрібно буде виконати деякий код всередині screenі отримати результат у моєму сценарії. Перша частина досить проста, я просто screen -S session_name -X eval 'stuff "$cmd"\015'. (Я змінив рядок, знайдений у сценарії ) Друга частина, отримуючи вихід, є складнішою. Як я можу отримати весь вихід, …

2
Чому функція `sort <(ls -l)` працює, але `sort <(ls -l)` не працює?
Сьогодні я дізнаюся щось про фіфо з цією статтею: Вступ до названих труб , в якій згадується cat &lt;(ls -l). Я зробив кілька експериментів, використовуючи sort &lt; (ls -l), що з'являється помилка: -bash: syntax error near unexpected token `('` Потім я виявив, що я неправильно додав пробіл у команді. Але …

1
ESC + {: Що це таке, і де я можу дізнатися більше про нього?
Я розігрувався під командою bash і натискав ESC, а потім {, після чого оболонка показала всі файли для завершення у рядку fileglob. Напр .: Якби я набрав bash Cпослідовно ESC+{, оболонка показала б це: bash CHECK{,1,2{,23{336{,66666},6},3{,6}}}автоматичне заповнення всіх можливих файлів і каталогів, починаючи з C, показуючи всі створені нами експериментальні …


6
Порахуйте кількість рядків виходу з попередньої програми
Я намагаюся підрахувати кількість рядків виводу певної програми. Проблема в тому, що програма запускає тривалий час, і я хочу відобразити вихід користувачеві. Чи є спосіб підрахувати кількість рядків останньої виведеної команди? Я міг би зробити, program | wc -lале це не показало б користувачеві вихід. Тож, наскільки я знаю, я …

3
Що означає! $?
Я переглядаю підручник і в ньому згадується запустити цю команду: sudo chmod 700 !$ Я не знайомий !$. Що це означає?

4
знайти -exec + vs знайти | xargs: яку вибрати?
Я розумію, що -execможе прийняти +варіант імітувати поведінку xargs. Чи є якась ситуація, коли ви віддасте перевагу одній формі над іншою? Особисто я віддаю перевагу першій формі, хоча б лише уникати використання труби. Думаю, безумовно, розробники, напевно, findзробили відповідні оптимізації. Я прав?
32 bash  find  pipe  xargs 

2
Що означає перенаправлення “<<(…)”?
Я бачив, що rvm (менеджер версій ruby) встановлюється за допомогою наступної команди: bash &lt; &lt;(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ) Отже, як я розумію, ми отримуємо вміст скрипту і передаємо його в bash (я вважаю, &lt; &lt;і &lt;&lt;це те саме?) Мене зацікавила &lt; &lt;частина, яка знайшла наступний опис в мережі: &lt;&lt; token …

1
Дескриптори файлів та сценарії оболонки
Мені дуже важко зрозуміти, як використовуються дескриптори файлів у скриптах оболонки. Я знаю основи, такі як exec 5 &gt; /tmp/foo Так fd 5 додається до foo для написання. exec 6 &lt; /tmp/bar … Для читання. exec 5&gt;&amp;- … Закрити fd. Тепер що це робить? #!/bin/bash exec 5 &gt; /tmp/foo exec …

3
Як я можу використовувати дві команди bash в команді -exec find?
Чи можливо використовувати 2 команди в -execчастині findкоманди? Я спробував щось на кшталт: find . -name "*" -exec chgrp -v new_group {} ; chmod -v 770 {} \; і я отримую: знайти: відсутній аргумент до -exec chmod: не може отримати доступ {}: немає такого файлу чи каталогу chmod: не може …
32 bash  find 

2
видалити файли, що відповідають шаблону
Мені потрібно рекурсивно видаляти всі файли з усіх підкаталогів, де ім'я файлу містить число, за яким "x" і число, принаймні два рази. Приклад: Я хочу видалити ці файли: 'aaa-12x123-123x12.jpg' 'aaa-12x12-123x12-12x123.jpg' Але я НЕ хочу видаляти ці файли: 'aaa.jpg' 'aaa-12x12.jpg' 'aaaxaaa-123x123.jpg' 'aaaxaaa-aaaxaaa.jpg' Як я можу це зробити (з оболонки bash)
32 bash  files  find  wildcards 

5
getopt, getopts або ручний розбір - що використовувати, коли я хочу підтримувати як короткі, так і довгі варіанти?
В даний час я пишу сценарій Bash, який має такі вимоги: він повинен працювати на широкому спектрі платформ Unix / Linux він повинен підтримувати як короткі, так і (GNU) довгі варіанти Я знаю, що це getoptsбув би кращий спосіб з точки зору портативності, але AFAIK не підтримує довгих варіантів. getoptпідтримує …

3
Що робить -е в баш-шебангу?
У мене є сценарій bash з наступним: #!/bin/bash -e egrep "^username" /etc/passwd &gt;/dev/null if[ $? -eq 0 ] then echo "doesn't exist" fi Цей сценарій не працюватиме без -e. Що -eробити для цього сценарію? Крім того, що робить $?у цьому контексті?
32 linux  bash 

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