Как настроить запуск cronjob или единичного файла после перезагрузки

Проблема решена.

Я установил пакет pavucontrol из pulseaudio и использую эту конфигурацию:

options snd_hda_intel index=0
options snd_hda_codec_hdmi index=1
options snd_hda_intel index=2
options snd_hda_codec_hdmi index=-2
alias snd-card-0 snd-hda-intel
alias sound-slot-0 snd-hda-intel
alias sound-slot-0 snd-card-0

Теперь мои звуковые карты обнаруживаются в правильном порядке: mountain-view # cat / proc / asound / карты

 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0xf7418000 irq 64
 1 [Adapter        ]: USB-Audio - Dell 4-in-1 Adapter
                      DisplayLink Dell 4-in-1 Adapter at usb-0000:00:14.0-1.1, super speed
 2 [HDMI           ]: HDA-Intel - HDA Intel HDMI
                      HDA Intel HDMI at 0xf741c000 irq 66
mountain-view# 

Затем с помощью графического интерфейса pavucontrol я отключил карту HDMI, которая использует порт дисплея моего ПК.

0
24.09.2018, 20:33
2 ответа

${i##*/}

Это работает в оболочках Posix, включая bash, dash, ksh, zshи т. д. Из стандартного раздела расширения параметров POSIX спецификации Posix Shell & Utilities :

. ]

${parameter##[word]}
Remove Largest Prefix Pattern. The word shall be expanded to produce a pattern. The parameter expansion shall then result in parameter, with the largest portion of the prefix matched by the pattern deleted.

Альтернативно и традиционно для этой цели использовалась команда basename. Внимание:Производительность может стать серьезной проблемой, поскольку basenameреализован как внешняя команда (, например,/usr/bin/basename). Поскольку вы выполняете это внутри цикла, вы будете вызывать внешнюю команду для каждого файла. В списке из 1000 файлов это может быть разница между 0,05 секунды (расширением параметра )и 2,0 секундами(basenameкоманды ). Но для списка из 10 000 файлов это может быть разница между 0,5 секундами (расширения )и 20 секундами(basename). Разница в производительности становится более резкой по мере увеличения количества файлов.

Для удобочитаемости и производительности вы можете реализовать собственную basenameфункцию, например:

mybasename() { echo "${1##*/}"; }

(Выбор лучшего имени для функции и/или реализация полного basenameинтерфейса командной строки оставлены читателю в качестве упражнения.:)

5
28.01.2020, 02:16

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

$ pth="/source/path/";
$ for i in $path*.pdf; do \
  ln -s "$i"./"${i:${#pth}}"; \
  done
0
28.01.2020, 02:16

Теги

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