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

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

2
Як інтерпретуються дужки в командному рядку?
Читаючи, як налаштувати grub, я натрапив на статтю, у якій стверджується, що мені потрібно використовувати один із наступних двох синтаксисів, echo \(hd0,0\) >> /boot/grub/grub.conf або echo '(hd0,0)' >> /boot/grub/grub.conf тому що в командному рядку дужки інтерпретуються особливим чином. Що особливого в дужках? Як вони трактуються?
45 bash  shell  quoting 

5
mv: Перемістити файл лише в тому випадку, якщо призначення не існує
Можу чи я використовувати mv file1 file2таким чином , що вона рухається тільки file1в file2разі file2не існує? Я намагався yes n | mv -i file1 file2 (це дозволяє mvзапитати, чи слід file2 переосмислити і автоматично відповісти "ні"), але, окрім зловживань, -iвін також не дає мені гарних кодів помилок (завжди 141 …
44 shell  files  mv 

7
Це тест або [або [[більш портативний як між оболонками, так і між іншими оболонками?
Я бачу, що можу зробити $ [ -w /home/durrantm ] && echo "writable" writable або $ test -w /home/durrantm && echo "writable" writable або $ [[ -w /home/durrantm ]] && echo "writable" writable Мені подобається використовувати третій синтаксис. Чи вони рівнозначні в усіх напрямках і для всіх негативних та кращих …

8
Як я можу відтворити звук, коли виконання сценарію готове?
Раз у раз я виконую кілька сценаріїв python, на виконання яких потрібно багато часу. Я виконую їх так: $ time python MyScript.py Як я можу відтворити звук, як тільки виконується виконання сценарію? Я використовую Ubuntu 10.10 (робочий стіл Gnome).
44 shell  ubuntu  audio 

10
зробити мій режим швидкого показу zsh у режимі vi
Я використовую bindkey -v(для башерів, set -o viя думаю, що це працює і в zsh) або в режимі vi (m). але це клопочеться про те, що я не маю жодної візуальної підказки, щоб сказати мені, чи я перебуваю в режимі вставки або режимі команд. Хтось знає, як я можу зробити …
44 shell  prompt  zsh 

11
Як я можу використовувати повторно останній висновок з командного рядка?
Я хотів би знати, як повторно використовувати останній висновок з консолі, тобто: pv-3:method Xavier$ python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()" /Library/Python/2.6/site-packages pv-3:method Xavier$ cd **LASTOUTPUT**

7
Що хорошого мнемоніка для подвійних оболонок проти одиничних лапок?
Я не роблю достатньо сценаріїв, щоб пам'ятати, не дивлячись на те, чи подвійні чи одиничні лапки призводять до заміни змінної Unix. Я точно розумію, що відбувається. Моє запитання: чи є у когось пам'ять про хитрість пам’яті, щоб зробити правильне правило цитування в голові?

1
знайти файли без розширення
Скажімо, у мене є: foo.txt bar baz.ooo Якщо я буду користуватися, ls -1 !(*.*)то отримаю лише barвихід. Чудово, зараз я хочу досягти однакових результатів із знахідкою - деякі, find -regexякі зроблять цю роботу. ПРИМІТКА: find -name !(*.*)це не відповідь, оскільки !(*.*)це все ще глобус Баша, яким я НЕ можу користуватися.
43 bash  shell  find  wildcards 

4
Покажіть PATH у читаному для людини способі
Я хочу показати свою змінну середовища PATH більш зрозумілим для людини способом. $ echo $PATH /Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin Я думаю про щось подібне: $ echo $PATH | some cut and awk magic /Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin /Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin /Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin /Users/arturo/.rvm/bin ...

3
Що означає $ {1 + "$ @"} у сценарії оболонки, і чим він відрізняється від "$ @"?
У документації на Perl perlrun (1) пропонує запустити скрипти Perl за допомогою двомовної оболонки / заголовка Perl: #!/bin/sh #! -*-perl-*- eval 'exec perl -x -wS $0 ${1+"$@"}' if 0; Що ${1+"$@"}означає? Я спробував використовувати "$@"натомість (використовуючи Bash як / bin / sh), і, здається, він працює так само добре. Редагувати …
43 bash  shell  perl 

4
Як надрукувати "$" у цьому документі
Як я можу відлунювати "$" у here-doc в bash? Наприклад, я хочу мати файл із вмістом на віддаленому сервері, як $ABC=home_dir. $ ssh hostname sudo -s <<EOF echo "$ABC=home_dir" > file EOF Але це трактується як змінна. Як я можу надрукувати літерал $?
42 bash  shell  quoting 

7
Чому [AZ] відповідає малі літери в bash?
З усіх відомих мені оболонок rm [A-Z]*видаляються всі файли, які починаються з великої літери, але з bash це видаляє всі файли, які починаються з літери. Оскільки ця проблема існує в Linux та Solaris з bash-3 та bash-4, вона не може бути помилкою, спричиненою помилковим відповідником шаблону в libc або пропущеним …
42 bash  shell  wildcards  locale 

2
Як працює `cat <> file`?
cat &lt; fileдрукує вміст файлу до stdout. cat &gt; fileчитає stdin, поки не буде виявлено Ctrl+ D, і введений текст записується у файл . cat &lt;&gt; file, принаймні в моїй версії Bash, друкує вміст файлу щасливо (без помилок), але не змінює файл і не оновлює часову позначку модифікації. Як стандарт …


1
Чи є стандартна команда, яка завжди виходить із збоєм?
Я хочу перевірити свій скрипт за допомогою команди, яка виходить з ладу. Я міг би використовувати існуючу команду з поганими аргументами. Я також міг написати простий сценарій, який негайно закінчується з відмовою. І те й інше легко зробити і працювати для мене, але якщо для цієї мети є стандартна команда, …

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