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-56505

fauve's questions

Martin Hope
fauve
Asked: 2025-02-03 01:54:47 +0800 CST

Opções de autocompletar do Zsh a partir de variáveis

  • 6

Visão geral

Tenho que definir um autocompletar de valores no zsh para um comando (no exemplo mínimo a seguir, mostrarei com testcmd). Então meu código atual funciona muito bem com valores codificados:

Código de autocompletar atual (aquele que funciona)

function testcmd()
{
    echo "Nothing to do, just a test command"
}


_test_complete() {
    _values \
        "Possible values" \
        foo'[Foo]' \
        bar'[Bar baz]' \
}

compdef _test_complete testcmd

Comportamento atual de preenchimento automático

Quando digito testcmd <tab>, obtenho corretamente a seguinte renderização desejada:

$ testcmd
Possible values
bar  -- Bar baz
foo  -- Foo

Qual é o objetivo que busco alcançar

Mas, como você pode ver, os valores são codificados dentro da função. O ideal é que a função os recupere de uma variável.

O que eu já tentei

Então, naturalmente, coloquei os valores dentro da variável values_variableda seguinte forma:

O código testado (aquele que não funciona)

function testcmd()
{
    echo "Nothing to do, just a test command"
}


_test_complete() {
    local values_variable
    values_variable="foo'[Foo]' \
        bar'[Bar baz]' \ "
    _values \
        "Possible values" \
        ${values_variable}
}

compdef _test_complete testcmd

O comportamento do código testado

Mas então, quando tento, testcmd <tab>falha completamente:

$ testcmd
_values:compvalues:11: invalid value definition: foo'[Foo]' \t\tbar'[Bar baz]' \
_values:compvalues:11: invalid value definition: foo'[Foo]' \t\tbar'[Bar baz]' \
_values:compvalues:11: invalid value definition: foo'[Foo]' \t\tbar'[Bar baz]' \
$ testcmd 

O que eu também fiz

  • Tentei escapar dos espaços com echo ${values_variable} | sed "s/ /\\ /g" ;
  • Tentei usar $values_variableo evalcomando para fingir que o conteúdo foi digitado diretamente dentro da _valuesdefinição;
  • Eu tentei os dois evale escapei com eval $(echo ${values_variable} | sed "s/ /\\ /g") ;
  • Tentei revelar linha por linha com um loop:
echo "$values_variable" | while read -r line; do
    eval "$line"
  done
  • Expansão com ${(@f)values_variable}̀ ;
  • Muitas outras ideias. Mas também falhou.

A solução mais próxima que encontrei

Em Como passar o conteúdo de um arquivo usando catto _values(zsh conclusion) tread, encontrei uma solução para valores importados de um arquivo externo, mas o usuário parece estar enfrentando o mesmo problema de escape de espaço. No entanto, não consigo ajustá-lo ao caso com a $values_variablesvariável interna.

Eu naturalmente tentei este, que também não funciona:

_test_complete() {
    local values_variable
    values_variable="foo'[Foo]' \
        bar'[Bar baz]' \ "
    OLD_IFS=$IFS
    IFS=$'\n'
    _values \
        "Possible values" \
        ${values_variable}
    IFS=$OLD_IFS
}

A questão

Como posso carregar os valores para fornecer _valuesdentro da função de preenchimento automático de uma variável?

zsh
  • 1 respostas
  • 37 Views
Martin Hope
fauve
Asked: 2024-07-22 03:20:58 +0800 CST

preenchimento automático zsh para valor do parâmetro

  • 6

Visao geral

Aqui está meu arquivo de aparência automática:

_triumphum_complete() {
_arguments \
  '(- 1 *)'{-h,--help}'[show help options]' \
  '(- 1 *)--tui[Run the game selection interface]' \
  '(- 1 *)'{-r,--run}'[Run a given game and track playing time.]' \
  '(- 1 *)'{-a,--about}'[Show about message.]' \
  '(- 1 *)'{-d,--donate}'[Open link to give a tip.]' \
  '(- 1 *)--no-splash[Do not show splash at opening.]' \
  '(- 1 *)--list-games[Afficher la liste des jeux.]' \
  '(- 1 *)--list-licences[Afficher la liste des licences.]' \
  '(- 1 *)--list-genres[Afficher la liste des genres de jeu.]' \
  '(- 1 *)--list-platforms[Afficher la liste des genres des plateformes.]' \
  '(- 1 *)'{-c,--config-file}'[Select different config file from default one.]' \
  '(- 1 *)'{-g,--games}'[Select different game file from default one.]' \
  '(- 1 *)'{-p,--platforms}'[Select different platform file from default one.]' \
  '(- 1 *)'{-l,--licences}'[Select different licence file from default one.]' \
  '(- 1 *)'{-t,--game-genres}'[Select different game genre file from default one.]' \
  '(- 1 *)--layout[Utiliser des raccourcis dactyliques adaptés à la disposition de clavier.]' \
  '(- 1 *)--add-game[Ajouter un nouveau jeu.]' \
  '(- 1 *)--add-licence[Ajouter une nouvelle licence.]' \
  '(- 1 *)--add-genre[Ajouter un nouveau genre de jeu.]' \
  '(- 1 *)--add-platform[Ajouter une nouvelle plateforme.]' \
  '(- 1 *)--del-game[Suprimer un jeu.]' \
  '(- 1 *)--del-licence[Suprimer une licence.]' \
  '(- 1 *)--del-genre[Suprimer un genre de jeu.]' \
  '(- 1 *)--del-platform[Suprimer une plateforme.]' \
}

compdef _triumphum_complete triumphum

Sua renderização corresponde ao objetivo, como você pode ver:

% % triumphum -<tab>
option
--about           -a  -- Show about message.
--add-game            -- Ajouter un nouveau jeu.
--add-genre           -- Ajouter un nouveau genre de jeu.
--add-licence         -- Ajouter une nouvelle licence.
--add-platform        -- Ajouter une nouvelle plateforme.
--config-file     -c  -- Select different config file from default one.
--del-game            -- Suprimer un jeu.
--del-genre           -- Suprimer un genre de jeu.
--del-licence         -- Suprimer une licence.
--del-platform        -- Suprimer une plateforme.
--donate          -d  -- Open link to give a tip.
--game-genres     -t  -- Select different game genre file from default one.
--games           -g  -- Select different game file from default one.
--help            -h  -- show help options
--layout              -- Utiliser des raccourcis dactyliques adaptés à la disposition de clavier.
--licences        -l  -- Select different licence file from default one.
--list-games          -- Afficher la liste des jeux.
--list-genres         -- Afficher la liste des genres de jeu.
--list-licences       -- Afficher la liste des licences.
--list-platforms      -- Afficher la liste des genres des plateformes.
--no-splash           -- Do not show splash at opening.
--platforms       -p  -- Select different platform file from default one.
--run             -r  -- Run a given game and track playing time.
--tui                 -- Run the game selection interface

Porém, quero adicionar um preenchimento automático especificamente para a --runopção que deve ser considerada apenas como valores {"crash", "civilization", "vicecity"}.

O que eu fiz

Já tentei fazer uma autocompletação específica triumphum --rune combiná-la separadamente com:

_triumphum_run_games() {
    local games=('civilization' '0ad' 'vicecity' 'crash')
    _arguments 'game' games
}
compdef _triumphum_run_games "triumphum --run"   

Mas não funciona.

A questão

Como adicionar uma autocompleição especificamente para triumphum --run?

shell
  • 1 respostas
  • 19 Views
Martin Hope
fauve
Asked: 2024-03-30 21:06:00 +0800 CST

Recuperar e-mails de apenas uma conta específica com fetchmail

  • 6

A situação

Eu tenho o seguinte~/.fetchmailrc

poll pop.gmail.com       protocol pop3 user "[email protected]"      password "***"            ssl
mda "/usr/bin/procmail -d default -a foo@example-com"

poll pop.gmail.com       protocol pop3 user "[email protected]"      password "***"            ssl
mda "/usr/bin/procmail -d default -a bar@example-com"

Então, eu recupero todos os e-mails com fetchmail -v -m '/usr/bin/procmail -d %T'.

O problema

Mas o problema é que todas as contas são recuperadas.

A questão

É possível, a partir do comando fetchmail, solicitar a recuperação de apenas e-mails de um endereço específico?

email
  • 1 respostas
  • 34 Views
Martin Hope
fauve
Asked: 2023-06-06 08:03:10 +0800 CST

Troque com setxkbmap pageUp e pageDown

  • 5

No Debian, tento trocar com setxkbmap pageDown com pageUp (e também Home e End), mas não encontrei opções para fazer isso na -optionopção.

Eu tento algo como setxkbmap -layout fr -variant bepo -option caps:swapescape compose:menu terminate:ctrl_alt_bksp pgup:pgdn, mas <key0>:<key1>não é uma sintaxe para trocar chaves.

Então, como trocar essas chaves?

keyboard-shortcuts
  • 1 respostas
  • 11 Views
Martin Hope
fauve
Asked: 2022-09-24 15:58:09 +0800 CST

Aviso de bug com atualização do aptitude #1019855 e #1019564

  • 2

Eu tento atualizar um Debian Bullseye, mas recebo uma mensagem de aviso ansiosa:

 % sudo aptitude upgrade
Resolving dependencies...
The following NEW packages will be installed:
  linux-headers-5.10.0-18-amd64{a} linux-headers-5.10.0-18-common{a} linux-image-5.10.0-18-amd64{a}
The following packages will be REMOVED:
  sse3-support{u}
The following packages will be upgraded:
  avahi-autoipd avahi-daemon base-files bind9-dnsutils bind9-host bind9-libs chromium chromium-common chromium-sandbox clamav clamav-base clamav-freshclam cri-tools curl dpkg dpkg-dev
  fig2dev firefox-esr firefox-esr-l10n-fr fonts-opensymbol gir1.2-ayatanaappindicator3-0.1 gir1.2-gdkpixbuf-2.0 gir1.2-javascriptcoregtk-4.0 gir1.2-lokdocview-0.1 gir1.2-webkit2-4.0
  gping grub-common grub-pc grub-pc-bin grub2-common krb5-locales kubeadm kubectl kubelet kubernetes-cni libavahi-client3 libavahi-common-data libavahi-common3 libavahi-compat-libdnssd1
  libavahi-core7 libavahi-glib1 libayatana-appindicator1 libayatana-appindicator3-1 libc-bin libc-dev-bin libc-devtools libc-l10n libc6 libc6-dev libclamav9 libcurl3-gnutls libcurl4
  libdatetime-timezone-perl libdpkg-perl libexpat1 libexpat1-dev libgdk-pixbuf-2.0-0 libgdk-pixbuf-2.0-dev libgdk-pixbuf2.0-bin libgdk-pixbuf2.0-common libgssapi-krb5-2
  libhttp-daemon-perl libhttp-parser2.9 libjavascriptcoregtk-4.0-18 libjs-bootstrap4 libjuh-java libjurt-java libk5crypto3 libkrb5-3 libkrb5support0 liblibreoffice-java
  liblibreofficekitgtk libnss-myhostname libnss-systemd libpam-systemd libpcre2-16-0 libpcre2-32-0 libpcre2-8-0 libpcre2-dev libpcre2-posix2 libpoppler-cpp0v5 libpoppler-glib8
  libpoppler-qt5-1 libpoppler102 libpq5 libreoffice-base-core libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw libreoffice-gnome libreoffice-gtk3
  libreoffice-help-common libreoffice-help-en-us libreoffice-help-fr libreoffice-impress libreoffice-l10n-fr libreoffice-math libreoffice-style-colibre libreoffice-style-elementary
  libreoffice-writer libreofficekit-data libridl-java libsystemd0 libudev1 libuno-cppu3 libuno-cppuhelpergcc3-3 libuno-purpenvhelpergcc3-3 libuno-sal3 libuno-salhelpergcc3-3
  libunoloader-java libwebkit2gtk-4.0-37 libxnvctrl0 libxslt1.1 linux-compiler-gcc-10-x86 linux-headers-amd64 linux-image-amd64 linux-kbuild-5.10 linux-libc-dev locales poppler-utils
  publicsuffix python3-uno systemd systemd-sysv systemd-timesyncd thunderbird tzdata udev uno-libs-private ure virtualbox virtualbox-dkms virtualbox-qt zlib1g zlib1g-dev
The following packages are RECOMMENDED but will NOT be installed:
  libnss-nis libnss-nisplus
136 packages upgraded, 3 newly installed, 1 to remove and 0 not upgraded.
Need to get 0 B/540 MB of archives. After unpacking 400 MB will be used.
Do you want to continue? [Y/n/?] y
Retrieving bug reports... Done
Parsing Found/Fixed information... Done
critical bugs of libc6 (2.31-13+deb11u3 -> 2.31-13+deb11u4) <Outstanding>
 b1 - #1019855 - Fwd: libc6: immediately crashes with SIGILL on 4th gen Intel Core CPUs (seems related to AVX2 instructions), bricking the whole system
grave bugs of grub-pc (2.04-20 -> 2.06-3~deb11u2) <Outstanding>
 b2 - #1019564 - (during upgrade) grub-install: warning: Attempting to install GRUB to a disk with multiple partition labels.  This is not supported yet..
Summary:
 libc6(1 bug), grub-pc(1 bug)
Are you sure you want to install/upgrade the above packages? [Y/n/?/...]

Então, qual é o problema com libc6 e grub-pc, o problema é tão perigoso quanto o apt tell? O que concretamente pode acontecer? A propósito, posso dizer “sim” e continuar?

debian grub
  • 1 respostas
  • 54 Views
Martin Hope
fauve
Asked: 2022-02-26 12:24:27 +0800 CST

Como posso suspender|hibernar por um certo tempo

  • 1

Eu tento dar um comportamento a uma tampa de fechamento de um laptop seguindo estas regras:

Quando a tampa está fechada:

  1. Após 1m, deve ser bloqueado;
  2. Após 10m, deve ser suspenso;
  3. Após 15m, deve ser desligado.

Então, eu faço o seguinte script:

#!/bin/bash
 
USER=fauve
 

sleep 1m
# set screensaver
su -c  "$HOME/.local/bin/screenlock" - $USER

# hibernate
sleep 9m
systemctl suspend


sleep 5m
# shutdown
shutdown 0

Mas, como você vê, shutdowno laptop vem quando o laptop está em suspensão, então ele nunca será desligado.

Então, como posso programar uma suspensão ou desligamento por 5 minutos e, em seguida, fazer com que o script continue a desligar completamente o computador?

laptop suspend
  • 1 respostas
  • 264 Views
Martin Hope
fauve
Asked: 2018-06-20 23:18:37 +0800 CST

encontrar dentro da função shell

  • 2

Eu tento colocar finddentro da função e pegar um argumento passado para esta função com o seguinte exemplo de trabalho mínimo:

função DO
{
    ls $(find. -type f -name "$@" -exec grep -IHl "TODO" {} \;)
}

Mas, quando executo DO *.tex, recebo “find: os caminhos devem preceder a expressão:”. Mas quando eu faço diretamente:

ls $(find . -type f -name "*.tex" -exec grep -IHl "TODO" {} \;)

então recebo todos os arquivos TeX que contêm "TODO".

Eu tento muitas coisas na DOfunção, como \"$@\", '$@', mudo as aspas, mas o comportamento continua o mesmo.

Então, o que fazer para forçar a encontrar o trabalho dentro da função?

bash alias
  • 2 respostas
  • 525 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