Um problema um pouco estranho para você. Eu tenho um antigo tablet 2 em 1 que funciona bem, exceto que o driver da tela sensível ao toque trava ocasionalmente, deixando-o inutilizável. Tenho um script simples para reiniciá-lo, mas quando ele não está conectado ao teclado, isso pode ser um problema. Minha solução proposta é executar o script quando eu pressionar as duas teclas de volume físicas simultaneamente (sendo esses botões o único outro dispositivo de entrada que terei conectado de forma confiável). Estou usando o Fedora Wayland. Isso parece viável e, em caso afirmativo, como poderia ser feito?
Tenho um script e um patch que levei para algum lugar para compilar uma imagem (raiz de compilação do Linux) e adicionei algumas linhas e agora recebo um erro durante o patch, o erro é assim:
diff --git a/package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
index fecf82fcaa..fff80d6efc 100755
--- a/package/base-files/files/bin/config_generate
+++ b/package/base-files/files/bin/config_generate
@@ -312,10 +312,10 @@ generate_static_system() {
o problema parece estar nos números -312,10 +312,10
ideia?
obrigado
EDIT: aqui mais algumas informações, durante a compilação do OpenWrt, eu quero adicionar algumas mudanças automaticamente, essas mudanças estarão em um script, e ele aplicará o patch em alguns arquivos. Ou seja: essa parte
generate_static_system() {
uci -q batch <<-EOF
delete system.@system[0]
add system system
set system.@system[-1].hostname='OpenWrt'
set system.@system[-1].timezone='EST5EDT,M3.2.0,M11.1.0'
set system.@system[-1].zonename='America/New York'
set system.@system[-1].ttylogin='0'
set system.@system[-1].log_size='384'
set system.@system[-1].urandom_seed='0'
para:
generate_static_system() {
uci -q batch <<-EOF
delete system.@system[0]
add system system
set system.@system[-1].hostname='james_router2'
set system.@system[-1].timezone='EST5EDT,M3.2.0,M11.1.0'
set system.@system[-1].zonename='America/Toronto'
set system.@system[-1].ttylogin='0'
set system.@system[-1].log_size='384'
set system.@system[-1].urandom_seed='0'
esta é uma parte de um arquivo maior, em:
package/base-files/files/bin/config_generate b/package/base-files/files/bin/config_generate
Eu uso uma carteira interativa spectre-cli
de Spectre , uma moeda similar à Kaspa em seu design. Quando eu quero manualmente obter o saldo da minha carteira, preciso executar
spectre-cli
e então connect
, open
de dentro de spectre-cli
. Tudo isso se parece com isto:
spectre-cli
Spectre Cli Wallet v0.3.16 (type 'help' for list of commands)
$ connect
Connected to Spectre node version 0.3.16 at ws://127.0.0.1:19110
$ open
Enter wallet password:
Your wallet hint is: This is a hint.
$ $
• ****************
• [********]: 4.47042578 SPR 1 UTXOs
spectre:******************************************************
[********] • 4.47042578 SPR $
Eu escrevi um script expect para executar essas etapas para mim (para que a única coisa que eu precisasse digitar fosse minha senha):
#!/usr/bin/expect -f
# Set a timeout (in seconds) for how long to wait for each prompt
set timeout 5
spawn spectre-cli
expect "$ "
send "connect\r"
expect "$ "
send "open\r"
interact
Eu obtenho uma saída inconsistente do script. Cerca de 70% das vezes eu obtenho:
./get_balance_works.exp
spawn spectre-cli
Spectre Cli Wallet v0.3.16 (type 'help' for list of commands)
$ connect
connectopen
command not found: connectopen
$
enquanto o resto do tempo o script funciona como esperado:
./get_balance_works.exp
spawn spectre-cli
Spectre Cli Wallet v0.3.16 (type 'help' for list of commands)
$ connect
$ open
Connected to Spectre node version 0.3.16 at ws://127.0.0.1:19110
Enter wallet password:
Your wallet hint is: This is a hint.
$ $
• ****************
• [********]: 4.47042578 SPR 1 UTXOs
spectre:******************************************************
[********] • 4.47042578 SPR $
Existe uma maneira de fazer o script funcionar conforme o esperado de maneira consistente?
PS: Estou usando um Ubuntu LTS.
Eu quero que ele inicie automaticamente com no-cursor: startx -- -nocursor
isso funcionou, mas esse é o comando... Eu quero iniciar automaticamente para o usuário: kiosk... (mas não quero usar "unclutter")
Não entendi onde posso adicionar script ou arquivo configure startx com no-cursor.. .xinitrc? ou outro arquivo configure..
eu uso o opensuse 15.6 com openbox
então eu pergunto aqui, espero encontrar seu código de ajuda.. :-)
obrigado
Com find
, verificarei se algum arquivo(s) com tamanho mínimo de 1 byte existe no diretório in
e, caso contrário, sairei.
Eu tentei algo assim, mas não funciona
find ./in/ -type f -iname '*' -size 1c &> /dev/null
if [ "$?" != 0 ]
then
echo file size is under 1 byte, aborting...
fi
Estou usando zsh no MX Linux 23.2.
Durante anos tentei descobrir por que um comando como
find . -depth -type f -execdir rename 's/_720p//' {} \;
pula arquivos.
Eu sei que meu gerenciador de arquivos não é confiável para mostrar as alterações, então verifico digitando ls
no terminal. Veja só! Existem arquivos listados com '_720p' ainda no nome.
Tentei enviar o processo para segundo plano e usar wait
, mas obtive os mesmos resultados. A única coisa que encontrei é algo como
while [ ! .(NF) ]; do
filename=$(find . -type f -print0 -quit)
rename 's/_720p//' $filename
mv $filename $HOME/Videos
done
Nunca vi outra pergunta nem remotamente semelhante a esta. Sou a única pessoa no Linuxverse que não consegue acertar? Qual é o problema?
Sinto-me bastante confortável em colocar ponto e vírgula, novas linhas e e comercial onde são necessários . Mas qual é a maneira “correta”? É apenas uma questão de estilo/preferência pessoal ou um é de alguma forma melhor que o outro?
while true; do
cmd1
cmd2
cmd3
done
while true; do
cmd1;
cmd2;
cmd3;
done
O segundo usa mais tinta/elétrons, mas você poderia simplesmente juntar as linhas e ainda assim ficaria ok:
while true; do cmd1; cmd2; cmd3; done
Estou procurando um tmux
comando para obter o diretório atual ( #{pane_current_path}
) do último painel em foco, que não exija alternar para ele e voltar.
Os seguintes trabalhos:
tmux last-pane
echo "$(tmux display-message -pF "#{pane_current_path}")"
tmux last-pane
no entanto, eu queria saber se existe uma maneira de fazer isso sem precisar chamar tmux last-pane
duas vezes (talvez uma variável que contenha o ID do último painel?).
Em relação a isso:
https://unix.stackexchange.com/a/754252/582781
Solução 1:
free -g -s2 | sed -u -n 's/^Mem:\s\+[0-9]\+\s\+\([0-9]\+\)\s.\+/\1/p' >> memory.log
Existe uma maneira de adicionar Swap a isso, para que eu registre a soma de Mem e Swap usados?
Em zsh
echo 'a string' > test.txt
echo $?
0
e
[[ $(echo 'a string') ]]
echo $?
0
enquanto
[[ $(echo 'a string' > test.txt) ]]
echo $?
1
outro exemplo
curl -so 'curl-8.2.1.tar.gz' https://curl.se/download/curl-8.2.1.tar.gz
echo $?
0
ou
[[ $(curl -so 'curl-8.2.1.tar.gz' https://curl.se/download/curl-8.2.1.tar.gz) ]]
echo $?
1
Minhas perguntas:
- Isso é por causa do redirecionamento de saída? Se não, o que está causando isso?
- Os comandos são executados com sucesso:
a string
aparecetest.txt
e curl baixa o arquivo para o arquivo de saída que especifiquei, por que a avaliação resulta emfalse
? - Existe uma maneira sensata de lidar com isso em scripts? Digamos que eu queira executar algum comando se o anterior foi executado com sucesso (mas
false
ainda retornou), como devo proceder? Eu poderia adicionar uma segunda verificação para ver se a linha apareceu ou se o arquivo foi baixado, mas a avaliação da execução bem-sucedida do comando não seria necessária em primeiro lugar.
Mais alguns exemplos de integridade (legibilidade vs. "correção"?):
if ( $(echo 'a string' > text.txt) ); then echo yes; else echo no;fi
yes
if (( $(echo 'a string' > text.txt) )); then echo yes; else echo no;fi
no
if $(echo 'a string' > text.txt); then echo yes; else echo no;fi
yes
if echo 'a string' > text.txt; then echo yes; else echo no;fi
yes