Вопросы с тегом «shell»

120
Когда необходимо двойное цитирование?

Старый совет заключался в том, чтобы заключать в двойные кавычки любое выражение, включающее $VARIABLE, по крайней мере, если кто-то хотел, чтобы оболочка интерпретировала его как один отдельный элемент, в противном случае любые пробелы в содержимом $VARIABLEбудут отбрасывать оболочку. Однако я...

119
Быстрая навигация по каталогам в оболочке bash

Я хотел бы часто переключаться между каталогами, которые находятся в абсолютно не связанных путях, например /Project/Warnest/docs/и ~/Dropbox/Projects/ds/test/. Но я не хочу печатать cd /[full-path]/все время. Существуют ли какие-либо команды быстрого доступа к ранее работавшим каталогам? Одним из...

119
Как запустить команду, не нажимая клавишу Enter?

Случайно я сопоставляюсь Enterчерез xkbsetк Pointer_button2. Теперь каждый раз, когда я нажимаю, Enterпоявляется какой-то бредовый текст. Я подумал об обходном пути, включающем перераспределение его обратно, но это означает, что мне придется запустить команду xmodmap -e "keycode 135 =...

118
Что означает амперсанд в конце строки сценария оболочки?

sh sys-snap.sh & Что такое sh? Что такое sys-snap.sh? Почему я должен поставить &в конце строки? Кто-нибудь может объяснить синтаксис? Без этого &скрипт не вернется к подсказке, пока я не нажму Ctrl+ C. С помощью &я могу нажать Enter, и это...

118
Были ли помечены обратные пометки (то есть `cmd`) в оболочках * sh?

Я видел этот комментарий много раз в Unix и Linux, а также на других сайтах, которые используют фразу «обратные ссылки не рекомендуется», в отношении оболочек, таких как Bash & Zsh. Это утверждение верно или...

117
Использование оператора неравенства для сравнения строк

Я попытался проверить, PHONE_TYPEсодержит ли переменная одно из трех допустимых значений. if [ "$PHONE_TYPE" != "NORTEL" ] || [ "$PHONE_TYPE" != "NEC" ] || [ "$PHONE_TYPE" != "CISCO" ] then echo "Phone type must be nortel,cisco or nec" exit fi Приведенный выше код не работает для меня, поэтому я...

116
Почему «эхо» намного быстрее, чем «прикосновение»?

Я пытаюсь обновить метку времени до текущего времени для всех файлов XML в моем каталоге (рекурсивно). Я использую Mac OSX 10.8.5. Приблизительно для 300 000 файлов следующая echoкоманда занимает 10 секунд : for file in `find . -name "*.xml"`; do echo >> $file; done Однако следующая...

116
Могу ли я перенаправить вывод в файл журнала и одновременно запустить процесс в фоновом режиме?

Могу ли я перенаправить вывод в файл журнала и одновременно запустить процесс в фоновом режиме? Другими словами, могу ли я сделать что-то подобное? nohup java -jar myProgram.jar 2>&1 > output.log & Или это не законная команда? Или мне нужно вручную переместить его на задний план,...

116
Как я могу выполнить локальный скрипт на удаленной машине и включить аргументы?

Я написал скрипт, который отлично работает при локальном исполнении: ./sysMole -time Aug 18 18 Аргументы «-time» , «Aug» , «18» и «18» успешно передаются в сценарий. Теперь этот сценарий предназначен для выполнения на удаленной машине, но из локального каталога на локальной машине. Пример: ssh...

115
Как мне повторить последнюю команду без использования клавиш со стрелками?

Я знаю, что могу использовать Upдля перебора предыдущих команд. Запуск последней команды просто включает Up+ Enter. Тем не менее, я думал о покупке клавиатуры Happy Hacking, поскольку я провожу много времени vim. Эта клавиатура не имеет клавиш со стрелками, и я знаю, как получить такое поведение,...

114
Передать аргументы командной строки в скрипт bash

Я новичок в программировании сценариев Bash. Я хочу реализовать сценарий bash 'deploymLog', который принимает в качестве входных данных один строковый аргумент (имя). [root@localhost Desktop]# ./deploymLog.sh name здесь я хочу передать строковый аргумент (имя) через командную строку В качестве...

114
Как запустить команду cron с существующими переменными среды?

Как запустить команду cron с существующими переменными среды? Если я в командной строке, я могу набрать echo $ORACLE_HOMEи получить путь. Это одна из моих переменных окружения, которая устанавливается в моем ~/.profile. Тем не менее, кажется, что ~/.profileне загружаются сценарии fron cron и...

113
Перенаправление stdout в файл, на который у вас нет разрешения на запись

Когда вы пытаетесь изменить файл без разрешения на запись, вы получаете сообщение об ошибке: > touch /tmp/foo && sudo chown root /tmp/foo > echo test > /tmp/foo zsh: permission denied: /tmp/foo Sudoing не помогает, потому что он запускает команду от имени пользователя root, но...

113
Существуют ли соглашения по именованию переменных в сценариях оболочки?

Большинство языков имеют соглашения по именованию переменных, наиболее распространенный стиль, который я вижу в скриптах оболочки MY_VARIABLE=foo. Это соглашение или это только для глобальных переменных? Как насчет переменных, локальных для...

110
Использование тире (-) вместо имени файла

Для команды, если использовать -в качестве аргумента вместо имени файла, будет означать STDIN или STDOUT. Но в этом примере он создает файл с именем -: echo hello > - Как я могу сделать -в этом примере означает STDOUT? И наоборот, как я могу -обозначить файл, указанный -в примерах, таких как:...

102
В чем разница между «cat file | ./binary »и« ./binary <файл »?

У меня есть двоичный файл (который я не могу изменить), и я могу сделать: ./binary < file Я также могу сделать: ./binary << EOF > "line 1 of file" > "line 2 of file" ... > "last line of file" > EOF Но cat file | ./binary дает мне ошибку. Я не знаю, почему это не работает с...

101
Есть ли способ увидеть детали всех потоков, которые есть у процесса в Linux?

Я думаю, что для Windows Process Explorer показывает все потоки процесса. Существует ли аналогичная утилита командной строки для Linux, которая может показать мне подробности обо всех потоках, которые порождает конкретный процесс? Я думаю, что я должен был сделать себя более ясным. Я не хочу видеть...

99
Как я могу общаться с доменным сокетом Unix через оболочку в Debian Squeeze?

Я использую веб-сервер Debian Squeeze. Я установил memcached на нем и настроил memcached для прослушивания на доменном сокете Unix (at /tmp/memcached.sock), так как ему нужно только получать сообщения с веб-сайта, который находится на том же сервере. Кажется, все работает нормально, но я бы также...