строку заполняют производительность в shell-скрипты: что это лучшая сумма и за что?

Я пытался определить наилучшую производительность для строку заполнить как в:
ул.+="А" #один в петле

Я пришел с этим скриптом на bash:

#!/бин/Баш
bReport=ложь
nLimit=${1-3000}; #до 25000

Эхо "nLimit='$nLimit'"
shopt -с expand_aliases
nStop=100000;fMaxWorkTime=1.0;
дата методов gettime псевдоним='+"%ы.%Н"';
nTimeBegin="`методов gettime`";
nDelayPart="`методов gettime`";
strFinal="";
стр="";
fPartWorkSleep="`до н. э. <<< "шкалы=10;($fMaxWorkTime/$nStop)*$nLimit"`"
Эхо "fPartWorkSleep='$fPartWorkSleep'"
кол=0;
пока правда;сделать 
ул.+="А";
((кол -++))&&:;
 если(((кол - %nLimit)==0)) || ((кол==nStop));тогда 
strFinal+=ул."$";
стр="";
 если $bReport;затем
 Эхо "`БЦ <<< "$(методов gettime)-$nDelayPart"` #${#strFinal} #`БЦ <<< "$(методов gettime)-$nTimeBegin"`";
nDelayPart="`методов gettime`";
интернет
 спи $fPartWorkSleep #, как делают некоторые weigthy вещь, основываясь на количестве обрабатываемых данных
интернет;
 если((кол==nStop));тогда 
перерыв;
интернет;
сделано;
Эхо "размер strFinal ${#strFinal}"
Эхо "взял до н. э. <<< "$(методов gettime)-$nTimeBegin"`"

И в bash лучшей производительности/размера, когда ул. ограничена от 3000 до 25000 символов (на моей машине). После каждой части будет заполнена, она должна быть очищена, и некоторые weigthy действие можно выполнить с ул. стоимость (и вес относительно его размеров).

Так что мой вопрос, что оболочка имеет лучшие строки заполнить производительности? основываясь на том, что я разоблачен. Я готов использовать другие оболочки, чем Баш, только на такой алгоритм, если он окажется быстрее.

ПС.: Мне пришлось использовать кол-как проверяет на размер строке производительности.

+210
Rakesh Gopal 1 июл. 2012 г., 18:39:00
31 ответов

Также зависит от того, расторгается отключен или включен.

+998
GreenROBO 03 февр. '09 в 4:24

У меня была такая же проблема, и ваше решение работает хорошо. Вы можете удерживать переключатель апплета (и переключатель клавиатуры-ярлык) при выполнении setxkbmap -макет де,нам в запуске приложения. Это будет работать если в списке самую верхнюю раскладку в настройках клавиатуры США клавиатура. Если нет, то команда должна быть setxkbmap -макет нам,де.

Мне кажется, это странная ошибка в настройках корицы или Gnome клавиатуры.

+997
Paddling Ghost 6 дек. 2015 г., 20:27:14
Другие ответы

Связанные вопросы


Похожие вопросы

Мобильный IPv6 является решение, разработанное для (класс) заботу, которые вы описали. Это потребует постоянно работает домашний агент (маршрутизатор), а также поддержка мобильных заголовков расширений IPv6 на мобильный узел и домашний агент.

Это позволяет мобильному узлу, чтобы всегда быть доступными в адрес домашней сети (где " дом " относится к устройству, не обязательно ваша личная резиденция), в дополнение к любой временный уход из адресов при подключении к внешней сети.

+987
tempestuousfool 15 июн. 2010 г., 09:42:55

Я полагаю, вы могли бы использовать функцию ReadFile , чтобы вывести только что созданный файл к браузеру. В качестве альтернативы, вы могли бы выдать 302 временный редирект на index.html.

+948
MisterV 7 нояб. 2011 г., 15:44:45

В СМБ.в conf(5) Man-странице охватывает это. В нем перечислены все параметры, и говорит

Буква в скобках указывает на то, что параметр является специфическим для секции [Global]. Буква S означает, что параметр может быть указан в специальном разделе сервиса. Все параметры могут быть определены в секции [Global] - в этом случае они определяют поведение по умолчанию для всех сервисов.

+827
mjelley1951 27 мар. 2014 г., 13:59:12

Печать через командную строку

Один метод будет использовать html2ps.

$ html2ps http://example.com/file.html | ЛНР

-или-

$ html2ps http://example.com/file.html | ЛП-д someprinter

Сохранение в PDF

В качестве дополнительного бонуса, если вы просто хотите, чтобы сохранить его как PDF-файл вы можете использовать ps2pdf вот так:

$ html2ps http://example.com/file.html | ps2pdf - somfile.формат PDF

Ссылки

+765
pdeva 13 апр. 2011 г., 13:08:58

Вам нужно установить/обновить каталог ваших портов. Сначала запустите следующие команды:

portsnap принести обновление
 portsnap экстракт

затем вы можете запустить свой:

ПКГ установить mysql55-сервер (Примечание: это для MySQL55-сервера, а не с MySQL-сервером)

+751
Dentych 8 июн. 2013 г., 23:22:59

Быстро взглянув на nmcli исходный код ($ apt-получить источник сети-менеджер) похоже на структуру, содержащую АП информации (ЦСИ/устройств/беспроводной/Нм-беспроводной доступ в интернет Wi-АП.с) хранится в энергозависимой памяти (я не уверен, если структура malloced или статически, но я хотел бы пойти на бывшего).

Структура это одно (на самом деле их два):

typedef структуры {
голец *supplicant_path; /* Д-автобусный объект путь этот ап от wpa_supplicant */

/* По этой или кэшированные значения */
GByteArray * идентификатор SSID;
голец * адрес;
NM80211Mode режиме;
guint8 сила;
guint32 частота; / - частота в Мгц; т. е. 2412 (== 2.412 ГГц) */
guint32 max_bitrate; /* Максимальная скорость передачи точки доступа в Кбит/сек (т. е. 54000 Кб/с == 54 Мбит/с) */

NM80211ApFlags флагов; /* общие флаги */
NM80211ApSecurityFlags wpa_flags; /* ВПА-обзоры флаги */
NM80211ApSecurityFlags rsn_flags; /* РСН (в WPA2), связанных с флагов */

/* Не по этой атрибутов */
боол фейк:1; /* будет ли АП от сканирования */
точка боол:1; /* является ли точка доступа сети Точка локального устройства */
gint32 last_seen; /* метка времени, когда АП был замечен на последок (получена через nm_utils_get_monotonic_timestamp_s()) */
} NMWifiAPPrivate;

структура _NMWifiAP {
 NMExportedObject родителей;
 NMWifiAPPrivate _priv;
};

Я не копал глубоко в код, поэтому я могу ошибаться, но я полагаю, что эта структура выделяется и выполнили, когда мы называем nmcli WiFi устройства в списке и затем разрушается, когда команда завершает работу. Может быть, есть более сложные функции, которые предполагает сохранить государство в какой-то файл или дамп памяти, но я не могу сейчас сказать.

Я не могу сказать iwlist (на самом деле не посмотрел на код).

Я бы написал это в качестве комментария, как это не совсем ответ, но он, очевидно, слишком долго.

Обновление

Глядя на nmcli странице GitHub, в нем говорится:

NetworkManager не демон работает в качестве привилегированного обслуживания (так как она должна доступ и средства управления), но предоставляет Д-Bus интерфейс на системной шины позволяют тонко контролировать сеть. Она не хранит подключения или настройки, это только механизм, посредством которого эти соединения выбраны и активированы.

Для хранения предварительно определенными сетевыми подключениями, два отдельных служб, "обслуживание системы" параметры и настройки "пользователь сервиса" магазин информацию о подключении и предоставить их помощью, а также через Д-Автобус. Каждая служба настройки можно определить, как и где она упорно сохраняет информацию о соединении, например, гном апплет хранит свои настройки в gconf, и настройки системы магазины обслуживание config в дистро-специфичные форматы, или в дистро- формат агностиком, в зависимости от пользователя или предпочтения администратора.

+750
WestlochWarrior1989 6 нояб. 2018 г., 02:06:53

Вы можете выполнить подход (оболочки Bash)

Сначала создать соответствующее название переменных, созданных переменных, и их тасуется аналоги.

Затем выполните команду sed.

Нум=`значение lc_all=C-функции printf '%ов' {0..9}`
A2Z=`значение lc_all=C-функции printf '%ов' {а..я}`
a2z=`значение lc_all=C-функции printf '%ов' {а..я}`

Альфа=${A2Z}${a2z}
alnum=${Альфа}${num} - й

 num_shuf=`Эхо "$число" | фолд -з 1 | Шуфа | тр -г "\н"`
 alpha_shuf=`Эхо "$Альфа" | фолд -з 1 | Шуфа | тр -г "\н"`
 alnum_shuf=`Эхо "$alnum" | фолд -з 1 | Шуфа | тр -г "\н"`

 СЭД -е "
 /Перевода/! б

 # числовые
 /,'$Нум',/ с/'[^']*'/,'$num_shuf'/2

 # алфавиту
 /,'$Альфа',/ с/,'[^']*'/,'$alpha_shuf'/2

 # алфавитно-цифровой
 /,'$alnum',/ с/,'[^']*'/,'$alnum_shuf'/2
 "ввод.в SQL
+749
Montagnik51 21 мар. 2014 г., 11:39:38

один из способов достичь очень похожий эффект загрузиться в консоль с помощью GRUB, а затем выполните команду StartX для входа. просто набор

GRUB_CMDLINE_LINUX_DEFAULT="текст"

В /и т. д./По умолчанию/харч.

затем положить в нижней части ~/.bashrc следующее:

[[ -Z от $дисплей ]] && [[ $(телетайп) = в /dev/tty1 ]] && командой StartX

это гарантирует, что когда пользователь входит в систему через виртуальную консоль tty1 только тогда X будет запущена, а затем в ~/.файла скрипт будет выполняться.

+629
Werner Thumann 1 июл. 2014 г., 03:06:19

Просто запустите в lxsession. Он будет выходить и предъявите экран входа в систему для нового сеанса.

+564
iled 22 февр. 2013 г., 13:12:05
найти . -тип F -имя '*Ф*' | СЭД -р с|/[^/]+$||' |сортировка |уник

Вышесказанное находит всех файлов текущего каталога (.) которые являются обычными файлами (тип Ф) и Ф где-то в их название (-имя '*Ф*'). Далее, СЭД удаляет имя файла, оставив только имя каталога. Затем список каталогов сортировки (сортировки) и удалены (уник).

В СЕПГ команда состоит из одного заменителя. Он ищет совпадения в регулярное выражение /[^/]+$ и заменяет ничего, что ни с чем. Знак доллара означает конец строки. [^/]+' означает один или более символов, не слеши. Таким образом, /[^/]+$ означает все символы из конечного слеша до конца строки. Другими словами, это соответствует названию файла в конце пути. Таким образом, команды sed удаляет имя файла, оставляя без изменения имени каталога, что файл был.

Упрощений

Многие современные вроде команды поддержки флага, который делает уник ненужных. Для GNU СЕПГ:

найти . -тип F -имя '*Ф*' | СЭД -Р С|/[^/]+$||' |рода -у

И, для macOS СЭД:

найти . -тип F -имя '*Ф*' | СЭД -Е 'С|/[^/]+$||' |рода -у

Кроме того, если найти команду, поддерживает ее, можно найти распечатать справочник имен напрямую. Это исключает необходимость СЭД:

найти . -тип F -имя '*ф*' -е '%з\п' | рода -у

Более надежная версия (не требует инструментов GNU)

Приведенные выше версии будут путать имена файлов, содержащие символы новой строки. Более надежное решение-сделать сортировку на нуль-завершенной строки:

найти . -тип F -имя '*ф*' -е '%ч\0' | сортировка -ЗУ | СЭД -З С 's/$/\Н/'
+522
blue skyz 15 авг. 2017 г., 14:55:48

Я пытаюсь автодополнение установки для команды, которая принимает только один параметр, имя папки,

В /безопасной/kernel_builds/, у меня есть три подпапки:

3.5.6/ 3.6.2/ источник/

Теперь я хочу, автозавершение, в котором перечислены все подпапки именем можно, но не названный источник, сейчас я использую довольно глупый способ сделать это, проверяя, если завершение слово начиналось с цифры,

_avail_kernel_builds()
{
 случае $COMP_CWORD в
1)
 если [[ "${COMP_WORDS[COMP_CWORD]}" =~ ^[0-9] ]];тогда
 COMPREPLY=( /безопасной/kernel_builds/"${COMP_WORDS[COMP_CWORD]}"* )
еще
 COMPREPLY=( /безопасной/kernel_builds/"${COMP_WORDS[COMP_CWORD]}"[0-9]*/ )
интернет
 COMPREPLY=( "${COMPREPLY[@]#/защищенный/kernel_builds/}" )
 COMPREPLY=( "${COMPREPLY[@]%/}" )
;;
 эсок 
}

Есть ли лучший способ сделать это?

+510
Jimmy Li 3 июн. 2012 г., 02:24:39

Попробуйте это:

переменная=найти . putYourConditionHere -продюсером ЛС-я ... время-стиль +(%г%г%г): {} \;|СЭД с/.*\(([0-9]*)\): \(.*\)/\2_string_modifieddate\1/"

Таким образом, вы используете найти , чтобы найти ваш файл, используйте опцию -exec для старпомов Общ его с опцией --время-стиль , чтобы получить желаемый формат и, наконец, ООО , чтобы получить правильный порядок. Передайте это вашей переменной.

Я включил : в дату, потому что имя файла не должно содержать его. В противном случае сценарий не по имени файла, включая то, как () или (42).

+499
user221974 10 апр. 2017 г., 00:06:03

В итоге: я точно не отвечу на ваш вопрос, но помощь идет.

Вам нужна программа для создания звуков. Командный сигнал может помочь.

И вы можете попробовать, чтобы код все детали , как этот парень также попытался , используя звуковой сигнал. Как отправить 1000 Гц в течение 2 секунд, чтобы спикер (debug покажет именно то, что делается):

бип --отладка -Ф 1000 -2000 л

Но звуковой сигнал использовать только динамик ПК для создания тона.
И ваш компьютер не может быть установлен динамик.

Однако, это на самом деле очень легко генерировать звук в Linux: отправить его в/dev/аудио

$ Эхо "тест" > /Дев/аудио

Разумеется, "испытание" - это очень плохая звуковая волна, то она будет звучать как простое "шишка".

На самом деле создать полезный сигнал вы должны создать все значения синусоиды в файл, а затем отправить файл в каталоге/dev/аудио. И вот грубый пример именно эту идею.


На самом деле, все это уже закодировано в команду, предназначенные для Морзе: по часовой стрелке.
В Debian производные, установите его: apt-получить СW.

Затем выполняем это:

Эхо "тест" | СW

И это причина "я точно не отвечу на ваш вопрос", потому что Хо делает всю работу за вас. Он преобразует символы в тире и Многоточия, создать звуковой волны для каждого и отправить его на звуковую карту.

В самом деле, сумма помощи имеющихся в Linux для радиолюбителей подавляющее:

https://radio.linux.org.au/?sectpat=morse

И это только для морса.

+461
keyla flores 12 мая 2010 г., 14:59:00

Я пытаюсь понять, как именованные каналы работают, так что я могу оптимизировать мой единственный-способ межпроцессного взаимодействия. Я ожидаю, что некоторые накладные расходы из-за копирования данных в кольцевой буфер, который я бы подумал, что хранится в памяти, и поэтому я ожидал, что трубы значительно быстрее, чем запись в файл (потому что оперативная память на порядки быстрее, чем диск).

Вместо этого, я обнаружил, что именованного канала (или анонимные трубы) примерно такая же скорость как файл. Это на 3 ГГц рабочего стола с обычного диска (не твердотельный), под управлением Ubuntu Линукс. Вот упрощенная тестовая программа в Python:

импорт Сыс
время импорта 
импорт случайных

мегабайт = "".присоединиться(случайные.выбор("абвгдежзийклмнопрстуфхцчшщыэюя") для X в диапазоне(1024**2))

в то время как правда:
 до = Время.время()
Сыс.поток stdout.записи(мегабайт)
 После = время.время()
 Сыс.поток stderr.писать("{} МКС\N".формат(1e6 * (после - до)))

Трубопроводы прямиком в /dev/нуль:

питон test.py > /dev/нуль

выходами 2.1 микросекунд (постоянный) за каждый мегабайт.

Трубопроводы в файл:

питон test.py > /tmp/testout.txt

прыгает от 500 микросекунд и 930 микросекунд (большее значение получает более распространенными, а файл становится больше--- надо полагать, он ищет места на диске).

Затем именованные трубы:

mkfifo testpipe
кошка testpipe > /dev/нуль &
питон test.py > testpipe

дает 640 микросекунд (постоянное) и неназванный трубы:

питон test.py | кошка > /dev/нуль

также дает 650 микросекунд (константа).

Может кто-нибудь объяснить, почему трубы скорость больше похож файла скорость чем /dev/нуль's скорость? Возможно, у меня есть переключатель где-то говорит: "Беги труб через файловый буфер, а не на основе ОЗУ буфера", и я могу поменять выключатель? Может ли это быть вариантом ядра или оболочки переменной?

Другое объяснение: предположим, что выход диска прыгает от 500 до 930 микросекундах за 500-это просто пронзительной и 930 уже пишет. Затем 500 ~ 640 для трубопроводов в обоих случаях эквивалентны. Однако, в соответствии с таким толкованием, почему есть только два между кантом и фактически писать на диск? Сайты, которые говорят о RAM диски сказать, что Ram-диски находятся в 50-200 раз быстрее, чем жесткие диски.

+401
dhaval9989 23 сент. 2017 г., 03:12:38

У меня есть архивный файл (около 3кб), и я хочу, чтобы ее размер должен быть ровно 4000.

Для достижения этой цели, это безопасно, чтобы добавить конечные заполнение нулями? (Под безопасным я имею в виду, что содержание сжатый файл может быть gunzipped без ошибок.)

ДД, если=/dev/нуль=/мой_файл БС=1 отсчет=4000
ДД if=/gzipfile.gz о=/мой_файл

Если это не безопасно, есть ли альтернативы?

+399
Gavin Morton 5 янв. 2011 г., 07:06:42

Нет встроенный способ запустить такой скрипт из основной X-сервер, но это можно записать X-клиент, который слушает для конфигурации событий и запускает код, так что оконный менеджер или подобное приложение может сделать это, и обеспечить способ для вас, чтобы настроить его для запуска скрипта, но не зная, что вы работаете, трудно сказать, если ваш.

+352
Kyle Baker 26 июн. 2017 г., 10:15:06

Я недавно установил Ubuntu 16.10. Это была чистая установка, а не обновление. Я не уверен, что я сделал, но когда я использую апп для установки пакетов, в конце концов, следующее сообщение об ошибке печатается:

Обработка триггеров для библиотеки libc-bin (на 2.24-3ubuntu2) ... на /sbin/ldconfig из-под.реально: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libgstapp-1.0.так.0-это не файл ELF - это неправильно Magic байт в начале.

на /sbin/ldconfig из-под.реально: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libgstallocators-1.0.так.0-это не ELF файл 
- это неправильно Magic байт в начале.

на /sbin/ldconfig из-под.реально: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libgstallocators-1.0.так.0.803.0-это не файл ELF - это неправильно Magic байт в начале.

на /sbin/ldconfig из-под.реально: в /usr/lib в/x86_64 с-линукс-дистрибутив GNU/libgstapp-1.0.так.0.803.0-это не ELF файл 
- это неправильно Magic байт в начале.

Я подозреваю, что это вызывает проблемы в некоторых приложениях, которые я использую, но я не знаю Хо это исправить короткое переустановки все. Что я могу сделать ?

+323
Sajol Saha 3 авг. 2010 г., 15:27:22

Недавно мне нужно удалить много дубликатов. Я сливаюсь три или четыре файловые системы, и я хочу, чтобы пространство используется экономично. Во-первых, fdupes казалось, что это был лучший инструмент для работы, но я все больше нарваться на ограничения.

Рассмотрим команду fdupes -РДН somedirectory/. Это делает хэш всех файлов в поддиректориях somedirectory.

И при обнаружении дубликатов, удаляет их, так что существует только одна копия все.

Но что если я хочу сохранить somedirectory/subdirectory1/некий-файл и есть, по сути, четыре дубликатов, а также программа обнаруживает один из дубликатов? Затем он удаляет somedirectory/subdirectory1/некий-файл, который я не хочу.

Я хочу быть в состоянии указать, почему-то, который дублирует держать. И до сих пор ни одна из стандартных программ для работы с дубликатами (Дафф, FSLint), кажется, позволяют автоматизировать такого рода поведения. Я бы предпочел, чтобы не свернуть свой собственный, вот почему я задаю этот вопрос.

Я хочу быть в состоянии написать что-то вроде

killdupes -РДН-сохранить=файлы,somedirectories,разлученные,на,запятые somedirectory/
+266
Bugra Balci 19 мая 2017 г., 19:38:21

Мне нужно контролировать демона каждые несколько минут с командой и проанализировать код завершения и (многоканальный) выход.

В случае, если есть проблема, я хочу быть уведомлены один раз, но я не хочу получать спам, пока проблема не будет исправлена, так я тоже хочу, чтобы подавить уведомления в течение нескольких часов. В то же время, все результаты записываются в базу данных на другом сервере.

Я раздумывал секунду - простой коррелятор событий или cron-задание выполняется пакетный скрипт, но я вижу несколько проблем с какой-либо подход.

  • У меня (в основном) работает скрипт, который я тестирую с помощью cron, используя переменные env, чтобы сохранить время последней отправки. Этот подход было сложно, когда я не мог найти способ сделать так, чтобы переменные ОКР сохраняются между последующими задание. Может мне написать в время переменные на диск, но мне нужно задать несколько переменных окружения и обработки файлов и строку замены только кажется уродливым и сложным решением.

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

Что бы быть хорошим решением для такой ситуации? Возможно, Руби/YAML файлы? Я не сталкивалась с этим. Я открыт для альтернатив.

+251
jack savacool 17 дек. 2013 г., 10:45:51

Очень часто, мне нужно быстро напечатать несколько строк символов (например, для упрощения математического выражения), а затем выбросить весь хлам. Конечно, я, как правило, имеют несколько сессий мой текстовый редактор, и я могу сделать это там. Я также использую следующую систему, я типа эхо " в терминале (работает Баш), а затем введите что-нибудь; когда я закончу, я тип закрытия ".

Вчера я решил добавить что-нибудь более элегантное на мой .bashrc и и я создал следующие псевдонимы:

# писать мусор на терминале (остановка со строки, содержащей только "." )
# псевдоним нуля="на awk '/^\.$/{выход}'"
# псевдоним нуля="СЭД -нэ '/\^. $/вопрос'"
команда grep -Q и псевдоним нуля='"^\.$"'

Выше вы можете видеть три варианта делают то же самое: я типа царапины, то типа все, что я хочу, а я с конца строка, содержащая только . (точка).

Я очень доволен этим, но я также думал, что на следующий вариант:

псевдоним нуля="кошка - > /dev/нуль << ."

который делает то же самое с начальной строки > в начале каждой строки.

Тогда я удивлялся, как я мог бы использовать ПС2 переменную окружения для изменения этой строки, и я не мог сделать что-нибудь полностью рабочий. Конечно, нынешняя ПС2 приглашении должны быть восстановлены, когда я сделал. Как я могу установить разрешение на это вариант моего нуля псевдоним в произвольную строку во времена "нуля" сессии?

+230
NukeyFox 8 сент. 2014 г., 13:27:42

Интерфейсы обычно называется Через в udev. Вы можете ознакомиться с подробными правилами для этого в файл, как:

файл /etc/udev из/правил.Д/70-стойкие-net.правила

Если udev находит "привычный интерфейс" он использует имя настроен там. Если udev находит новый интерфейс, он будет дать ему новое имя и добавить соответствующее правило есть.

Вы можете изменить этот файл и дать вам интерфейсы значимое имя.

+217
Mannu Maken 9 авг. 2018 г., 06:31:36

Чтобы правильно понять, как zstyle работает, вы сначала должны понять, что ЗШ-это модульная программа. От человека zshmodules

Некоторые дополнительные части ЗШ в модулях, отдельно от основного корпуса. Каждый из этих модулей может быть связана с оболочкой в время сборки, или могут быть динамически связаны в то время как оболочка работает, если установка поддерживает эту функцию. [...]

В этой связи zsh-это больше похоже на переводчика, таких как PHP, где главный встроенных команд определены в "основных" модулей, но и других встроенных команд содержатся в "модули".
ОК отлично, тогда что такое "zstyle"?
ЗШ, как и другие снаряды имеет встроенные команды, такие как источник, компакт-диск или объявить - zstyle - это просто еще один из этих "примитивы".

Объем примитивы и параметры оболочки

примитивы и раковины вариантов обычно "глобальный" в том смысле, что они, как правило (но не всегда) применимо/использовать в любое время или в контексте всей оболочки, процесс, или другими словами, они обычно относятся к zsh и всех подсистем (модулей). Обратите внимание, это касается того, является ли оболочка вызывается как интерактивный или неинтерактивный переводчик.
Так, например, вы можете использовать встроенные в источника или компакт-диска или оболочки опцию "globstar" будет действовать ли в командной строке или в случае заявление в неинтерактивный скрипт или функция в том же скрипте.
Вопреки другой ответ выше, zstyle - это не строение, характерное для "compsys" (доработок системы) модуль zstyle является "глобальной" строение.

zstyle определяется ЗШ/утиль модуль, это просто означает, что код, который определяет, как разобрать, и "делать" zstyle определяется в ЗШ/zutil модуль.
Вы могли просто забыть об этом факте, т. е. Баш не требует, чтобы вы знали, что код в функцию eval встроенный содержится в файле ивал.С, но чтобы получить справку для zstyle, это помогает знать, что zstyle это строение определяется в ЗШ/zutil модуль, и документацию по ЗШ/zutil модуля можно получить, запустивчеловека zshmodules.

Настройка параметров конкретного модуля или функции оболочки

Поэтому традиционно оболочка вариантов, как правило, "глобальные", но в соответствии с описанием от человека zshmodules, некоторые дополнительные части ЗШ в модулях, а также много ЗШ функциональность была написана в функции Shell. (подобно тому, как много основных и факультативных функциональность Vim был написан в vimscript).
Итак, если вы хотите, чтобы иметь возможность указать параметры, которые применяются только для этих модулей или функций, как бы ты это сделал?
Ну вот что zstyle делает, дают вам возможность "целевого" варианта на гораздо более глубоком уровне, чем традиционные "глобальных" Шелл вариантов.
zstyle достигает этого через аргумент "узор"


Пример команды, которая настраивает некоторые необязательные поведения, характерные для "compsys":

zstyle ':завершения::полное:меню как lsof:* да выбрать

и настроить некоторые дополнительные поведения, характерные для "vcs_info":

zstyle ':vcs_info:*' actionformats \
 '%Ф{5}(%е%с%Ф{5})%Ф{3}-%Ф{5}[%Ф{2}%б%ф{3}|%Ф{1}%А%Ф{5}]%Ф '

Но это не останавливаться на достигнутом, zstyles способность целевой контекстах невероятно мощные, например, скажем, вы хотели бы определить поведение/опции для vcs_info функцию, когда вы были является .в Git репозитория, а не из SVN РЕПО, то вы могли бы изменить контекст шаблона

:vcs_info:<svn_or_whatever_SCM_system>:* <стиль>

Насчет необязательного поведения для конкретного проекта, с СВН РЕПО? тогда

:vcs_info:<svn_or_whatever_SCM_system>:*:РЕПО-корневой-имя <стиль>
+216
Parlaungan Simamora 5 июн. 2013 г., 21:49:46

Я пытаюсь запустить приложение колбу на моем VPS в производственной среде. Проблема в том, что я не могу изменить любой из VPS пакетов, и он использует питон3.5 переводчик как по умолчанию. Версия о том, что нужно для моего приложения для работы питон3.6или более.

Было принято решение использовать виртуальную среду, чтобы принять необходимые зависимости доступен, не касаясь этих ОС.

мой вопрос: как мне активировать venv и запустить мой колбу приложение в сервис моде (Start и Stop). команды, которые я использую, чтобы запустить мое приложение просты :

источник venv/bin/активировать
Фляга FLASK_APP=app.py бежать-хоста 0.0.0.0 

Примечание : мой VPS работает на Ubuntu 18.04 ЛЦ.

+201
Dan Haynes 2 сент. 2010 г., 03:44:33

Я новичок в Linux и Unix. Я построил профессионал*с API для C++ и взаимодействие с Oracle, которая намного проще в использовании, чем обычные Профи*технологии C.

Если вы с помощью Pro*c, затем вы можете знать о его боли. Что нужно написать .файл ПК, затем с помощью Oracle прекомпилятором, вы должны скомпилировать код, чтобы получить .cpp файл, затем скомпилировать его снова получить .о (исполняемый файл). Чтобы сделать этот процесс простым, я создал API, который предоставляет программисту встроенных классов и функций, так что он/она может это реализовать, чтобы стимулировать развитие C++ и СУБД Oracle и SQL.

Теперь, я хочу провести API, как бесплатной, так что можно скачать API с помощью apt-получить в свои соответствующие системы. Как я могу разместить файл через apt-получить?

+171
Ann John 23 нояб. 2016 г., 18:07:08

МСИО если у вас есть .деб файл с зависимостями, которые могут быть выполнены из настроенных репозиториев, вы можете установить его с помощью dpkg -мне пакет.деб , а потом сделать apt-получить обновление и apt будет приносить ничего, что ваш пакет нужен... Но только если соответствующие номера версий и т. д. все существуют и совпадают.

В качестве альтернативы вы можете указать apt-получить на определенный деб файл и пропустить шаги, необходимые для того, чтобы скачать, сохранить, выберите пункт с помощью dpkg и т. д.

apt-получить установку https://www.example.com/some_deb_package.deb

+135
Empty Set 28 сент. 2019 г., 04:37:07

Сообщение об ошибке указывает на то, что ( был казнен как команду, которая означает, что один из знаков обратной косой черты используется для продолжения строки на самом деле не последний символ в строке. Убедитесь, что нет пробелов. Убедитесь, что вы используете концами строк в стиле Unix (если только не ЧР).

Жалобы от найти о недопустимое выражение из-за этих запятых. Просто удалить их.

найти "$таргет" \
 \( ! -группа "$проект" -Метод exec команда chgrp "$проект" {} \; \) \
 \( ! пользователь "$рук" -старпома Чаун "$владелец" {} \; \) \
 \( ! -Пермский "$завивка" -старпома чмод "$завивка" {} \; \) \
 \ (типа D-exec для чмод г+ы {} \; \)

Вы, вероятно, сэкономить время после запуска команды на пакет файлов, а не один раз в файл. Это не гарантируется, потому что на chown, chgrp, указав и чмод звонков может протекать с разной скоростью, так что записи каталога может быть выселен из кэша, но я хотел бы дать ему идти.

найти "$таргет" \
 \( ! -группа "$проект" -Метод exec команда chgrp "$проект" {} + \) \
 \( ! пользователь "$рук" -старпома Чаун "$владелец" {} + \) \
 \( ! -Пермский "$завивка" -старпома чмод "$завивка" {} + \) \
 \ (типа D-exec для чмод г+ы {} + \)

команда chgrp, чмод и Чаун ничего не делать, если файл уже имеет право метаданных, так что вы могли бы назвать их безоговорочно. Их напрасно, однако, вызывают больше звонков. Коммунальные платежи будут называть стат снова после найти так сделал, но иноды, очень вероятно, все еще быть в кэше, так что это может быть стоящее. Вы можете сохранить вызова путем объединения chgrp, указав в Чаун.

найти "$таргет" -старпома Чаун "$владелец:$проект" {} + \
 -старпома чмод "$завивка" {} + \
 -тип D -exec для чмод г+ы {} +
+70
Sergio Gutierrez 19 сент. 2017 г., 05:09:41

Построить команду на удаленный хост, используя имя переменной, чтобы определить хозяина.

ПСШ -х хозяев-корень л-я 'passwd с -Л "$(имя)"'

Это предполагает, что имя учетной записи пользователя, чтобы заблокировать то, что машина думает, как его имя. Если вы используете ники в СШ конфигурации и вы хотите использовать прозвище в команде, а не машины фактическое имя хоста, или если имя хоста отличается от DNS-имя узла, вы можете использовать $PSSH_HOST вместо $(хоста), но только если удаленный хост-сервере конфигурация позволяет попутно, что имя переменной среды, чего не происходит по умолчанию во многих системах.

+56
Leoni 19 окт. 2012 г., 16:56:07

С помощью команды mkdir() (Си) функция, я могу создать 1-уровня каталог, если я хочу создать multi_level каталог как:

папка/подпапка/subsubfolder

возможно ли это? если да, то как?

+50
Geebah Konneh 27 апр. 2017 г., 12:48:42

Эта конструкция имеет состояние гонки написано над ним. Вы не можете быть уверены, что сигналы будут поставлены в порядок, или даже на всех. Если вы используете Perl, который делает его вдвойне неопределенным.

Редизайн так, что есть какое-то подтверждение от родителя к ребенку, что сведения получил. Порядок доставки сигнала и кол-ненадежная вещь, просит для портативного решения еще более безнадежным.

+48
kkchaitu 29 мар. 2015 г., 11:57:35

Показать вопросы с тегом