Для GTK +-3 приложения можно осуществить темный вариант темы использование GtkSettings' settings.ini:
$ mkdir -p $HOME/.config/gnome-terminal/gtk-3.0 # the path before gtk-3.0 is arbitrary
$ cat >> $HOME/.config/gnome-terminal/gtk-3.0/settings.ini << EOF
[Settings]
gtk-application-prefer-dark-theme=true
EOF
$ echo 'alias gnome-terminal="XDG_CONFIG_HOME=$HOME/.config/gnome-terminal gnome-terminal" >> $HOME/.bashrc
Для non-GTK + приложения как vnc
, можно все еще осуществить темные художественные оформления окна путем установки _GTK_THEME_VARIANT
X свойств типа UTF8_STRING
кому: dark
. Сделать это с xprop
, введите следующую команду и нажмите окно впоследствии:
$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark"
xprop
может также выбрать окна WM_NAME
свойство (маркировка строки заголовка) или идентификатором окна:
$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -name "Spotify Premium - Linux Preview"
$ xprop -f _GTK_THEME_VARIANT 8u -set _GTK_THEME_VARIANT "dark" -id 0x380002b
Для получения идентификаторов окна и имен использовать xlsclients -l
.
Если Вы знаете, что у Вас есть GNU, находят, используют -quit
заставить его остановиться после первого соответствия.
Портативно, передайте вывод по каналу find
в head -n 1
. Тот путь find
умрет от поврежденного канала после нескольких соответствий (когда это будет заполнено head
входной буфер).
Так или иначе Вам не нужно wc
чтобы протестировать, пуста ли строка, оболочка может сделать это самостоятельно.
if [ -n "$(find … | head -n 1)" ]; then …
Можно использовать -quit
действие для остановки после первого соответствия. Вы, вероятно, захотите объединить это с другим действием (как -print
) или Вы не сможете сказать, нашло ли это что-нибудь.
Например, find ... -print -quit
распечатает путь первого файла соответствия и затем выйдет. Или, Вы могли использовать -printf 1 -quit
распечатать 1, если существует соответствие и ничто, если нет.
find
статус выхода отражается, были ли ошибки при поиске, и не, нашел ли он что-либо, таким образом, необходимо проверить его вывод, чтобы видеть, существует ли соответствие.
-quit
расширение GNU. Это не будет работать над системами с помощью других реализаций находки (1), таких как OS X, BSDs и вероятно большинство коммерческих Нельдов.
– Warren Young
27.05.2011, 04:25
Вы можете обернуть это в условие оболочки, например:
[ "$(find . ...)" '!=' '' ] && echo Found || echo Not found
Где ...
- это ваше условие совпадения, например, - имя *.txt
.
Некоторые другие примеры:
[ "$(find /etc -name hosts)" ] && echo True || echo False
[ ! -z "$(find /etc -name hosts)" ] && echo True || echo False
Выход 0 выполняется просто с помощью find, выход> 0 сложнее, потому что обычно это происходит только с ошибкой. Однако мы можем сделать это:
if find -type f -exec false {} +
then
echo 'nothing found'
else
echo 'something found'
fi
Обратите внимание, что это решение более производительно, чем использование подоболочки; Выполнение false определенно быстрее, чем выполнение даже Dash:
$ cat alfa.sh bravo.sh charlie.sh delta.sh
find -name non-existing-file -exec false {} +
find -name existing-file -exec false {} +
[ "$(find -name non-existing-file)" ]
[ "$(find -name existing-file)" ]
$ strace dash alfa.sh | wc -l
807
$ strace dash bravo.sh | wc -l
1141
$ strace dash charlie.sh | wc -l
1184
$ strace dash delta.sh | wc -l
1194
-n
только относившийся 'определенные' переменные ($abc, $xyz, и т.д.), но я предполагаю, что $ (...) является 'определенной' временной переменной.. +1... (и я просто считал недавно то использование-n
опасно, если Вы не уверены, что переменная не была уже объявлена и 'не использована)..., но временный файл не будет иметь этой возможности... т.е. неинициализированный по сравнению с пустым – Peter.O 27.05.2011, 11:09-n
тесты, пуста ли строка, она не имеет никакого отношения к переменным. Что Вы считали, вероятно, говорило то использование-n
не тестирует, определяется ли переменная:-n "$foo"
ложь еслиfoo
определяется, но пуст, и отображает сообщение об ошибке подset -u
.[ -n "${foo+1}" ]
надежно тесты, лиfoo
установлен, но обработка пустого и переменные сброса тождественно обычно является хорошей идеей:[ -n "${foo:+1}" ]
, или просто[ -n "$foo" ]
если Вы не волнуетесь по поводуset -u
. – Gilles 'SO- stop being evil' 27.05.2011, 13:01-quit
доступный, но передающий по каналу кhead -n 1
работы (как делаетhead -c 1
, который останавливается еще ранее, но вероятно с незначительным преимуществом). Кроме того, я сделал ошибку записи моего вопроса без кода передо мной: Я используюwc -l
в другом случае, где я должен знать общее количество найденных файлов. В случае, где я только тестирую на то, существуют ли какие-либо соответствия, я использовалif [ -z `find … ` ]
. – Chris Page 01.06.2011, 10:04