AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-359594

mrjpaxton's questions

Martin Hope
mrjpaxton
Asked: 2024-11-10 18:31:45 +0800 CST

Como detectar se fones de ouvido estão conectados para um script de shell?

  • 7

Estou escrevendo meu próprio status personalizado para o i3/Sway que mostra um indicador de volume, e me deparei com um problema.

Gostaria de saber se há uma maneira padrão, usando ferramentas Linux padrão -- talvez ALSA ou sysfs -- para detectar se os fones de ouvido estão conectados ou não? Eu preferiria fazer dessa forma, caso eu queira mudar do Pipewire para o JACK normal em algum momento, ou algo assim.

Vou postar um segmento dessa solução "meio funcional" que consegui encontrar online (desculpe, mas não lembro quem postou isso, então posso dar os créditos a essa pessoa).

has_headset() {
    grep -A4 -ri "Headphone Playback Switch" /proc/asound/card*/* |
        grep "Amp-Out vals.*\[0x00\]*"
}

Essa função has_headset()meio que funciona, mas o problema é que se os fones de ouvido estiverem conectados E silenciados, então não funcionará. Não tenho certeza do que os valores de "Amp-Out vals" significam. Parece ser [0x80] [0x80]quando os fones de ouvido estão desconectados, e então [0x00] [0x00]quando os fones de ouvido estão conectados e não silenciados.

Estou usando POSIX sh, mas soluções escritas especificamente para Bash também são mais que bem-vindas!

linux
  • 1 respostas
  • 123 Views
Martin Hope
mrjpaxton
Asked: 2024-02-21 23:22:51 +0800 CST

Extrair uma string de um índice de coluna pesquisada na linha abaixo?

  • 7

Estou tentando fazer um script de shell de uso de disco simples (em traço), mas não tenho certeza de como analisar essa string porque não estou familiarizado com a sintaxe do AWK.

Eu uso este comando: df -P -BG /e, por exemplo, ele me dá uma saída como esta:

Filesystem                  xxxxxxxxxx-blocks  Used Available Capacity Mounted on
/dev/mapper/xxx_crypt                    500G  200G      100G      xx% /

Quero extrair a coluna abaixo em "Usado" (e eventualmente "Disponível"), mas não tenho certeza de como devo fazer isso. Eu sei que o AWK tem um comando de pesquisa como este:awk '/Used/ {print}'

Mas não tenho certeza de como colocar a linha abaixo dela. Alguma dica? É muito importante para mim que ele funcione como um canal em uma linha, já que df -P -BG / | awk '...'estou armazenando-o em uma variável shell, mas não é estritamente necessário, suponho, já que o AWK multilinha pode ser usado.

shell
  • 3 respostas
  • 69 Views
Martin Hope
mrjpaxton
Asked: 2023-09-03 07:42:04 +0800 CST

Use find, cat, etc... para gerar uma lista de reprodução M3U a partir de listas de reprodução de álbuns

  • 4

Eu tenho uma pasta de músicas com playlists selecionadas em cada pasta intitulada "playlist.m3u" (também deve corresponder a *.m3u8).

O que eu gostaria de fazer é que um script de shell gere uma lista de reprodução concatenada com todas essas faixas selecionadas. Mas para que a lista de reprodução funcione corretamente, o nome da pasta deve ser anexado antes do título da música.

Aqui está um exemplo de estrutura de diretórios:

Main Folder
 `-> Album 1/
       *.flac
       playlist.m3u
 `-> Album 2/
       *.flac
       playlist.m3u
 `-> Album 3/
       *.mp3
       playlist.m3u

O arquivo main-playlist.m3u resultante deve ser parecido com isto:

Album 1/01. Song1.flac
Album 1/02. Song2.flac
Album 1/03. Song3.flac
Album 1/04. Song4.flac
Album 2/1-01. Song1 (Disc 1).flac
Album 2/1-02. Song2 (Disc 1).flac
Album 2/2-01. Song1 (Disc 2).flac
Album 2/2-02. Song2 (Disc 2).flac
Album 3/001. Song 001.mp3
Album 3/002. Song 002.mp3
Album 3/003. Song 002.mp3
<...>
Album 3/100. Song 100.mp3
Album 3/101. Song 101.mp3

Qual é a melhor e mais eficiente maneira de fazer isso em uma biblioteca de músicas com, eventualmente, milhares de faixas?

bash
  • 2 respostas
  • 42 Views
Martin Hope
mrjpaxton
Asked: 2022-11-18 21:12:08 +0800 CST

Falha ao obter o login PTY: Falha ao ativar o serviço 'org.freedesktop.systemd1'

  • 5

Estou tentando entender e brincar com o systemd-nspawn porque gostaria de executar uma instalação de teste do Debian para mim mesmo sem habilitar os repositórios de teste no meu sistema estável principal do Debian.

Eu escrevi este script de shell para ajudar a configurar o processo Debootstrap:

#!/bin/sh

dirpath="$1"

if [ -z "$dirpath" ]; then
    dirpath="debian-testing-devel"
elif ! [ -d "$dirpath" ]; then
    mkdir -p "$dirpath"
fi

echo "NOTICE: You must run `debootstrap` as a root user! Requesting sudo privilage..."
sudo debootstrap --include="dbus,systemd-container" testing "$dirpath" "https://deb.debian.org/debian"

echo "Debootstrap has finished!"
echo "You may log in to your system by using: systemd-nspawn -D ${dirpath} -U --machine debian-testing-devel"
echo "Make sure to set a secure root password!"

Algo assim, basicamente. Eu o chamei de "debian-testing-devel". Então aprendi rapidamente que machinectlsó posso acessar coisas em "/var/lib/machines/", então movi meu diretório criado para lá. De qualquer forma...

Em seguida, loguei com systemd-nspawn -D /var/lib/machines/debian-testing-devel/ -U --machine debian-testing-devel, configurei minha senha e tive que adicionar "pts/0" e "pts/1" a "/etc/securetty" para poder fazer login como root.

Quando tentei fazer login com machinectl login debian-testing-devel, recebi "Falha ao obter login PTY: erro de protocolo"

Então, entrei no contêiner com systemd-nspawnnovamente, descobri que a instalação do pacote foi interrompida por algum motivo com dbus, então executei apt -f install, o que pareceu consertar ... mais ou menos. Outra fonte Online afirmou que eu também tinha que instalar systemdno próprio contêiner, não apenas no DBus, para me livrar do erro de protocolo, então tentei isso!

E, finalmente, quando tento executar machinectl login debian-testing-develnovamente, ainda fico preso em "Falha ao obter o login PTY: ..." desta vez, diz, Failed to get login PTY: Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms).

Então, eu realmente não tenho certeza do que fazer a seguir. Tentar pesquisar esse problema on-line não está trazendo muitos resultados e não tenho certeza do que está acontecendo. Tem sido um pouco frustrante tentar aprender essas coisas e fazê-las funcionar quando... nada do que tento fazer parece funcionar...

Qualquer ajuda é apreciada!

debian
  • 1 respostas
  • 23 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve