Termine o script com um caractere de alimentação de linha / entrada ou uma linha vazia. senão o último comando não será executado.
Eu tenho este script em um arquivo * .sh para habilitar a rolagem natural. Eu adicionei a Startup Application
.
#!/bin/sh
xinput set-prop 11 268 -106 -106
nautilus -q && nautilus -n
O problema é que, sempre que eu faço login, o último comando ( nautilus -n
) não roda - o que é chato porque não consigo usar o botão Super para abrir o Dash - e preciso executar o nautilus manualmente. O que há de errado?
ATUALIZAÇÃO:
Eu testei meu script acima no terminal linha por linha e ele funciona bem. Os problemas só aparecem quando eu corro do arquivo .sh.
nautilus -q && touch $HOME/Desktop/reported-success.txt
me forneça o arquivo txt,
e o resultado de nautilus -q && nautilus -n &> $HOME/nautilus-output.log
é:
Initializing nautilus-open-terminal extension
Initializing nautilus-image-converter extension
Initializing nautilus-dropbox 1.4.0
Termine o script com um caractere de alimentação de linha / entrada ou uma linha vazia. senão o último comando não será executado.
Bem, a partir do script, isso significa que nautilus -q
retornou um código de saída diferente de zero. Por isso, o &&
é falso e nautilus -n
não é executado.
Você diz: execute nautilus -n
se nautilus -q
tiver êxito. A definição de sucesso é um código de saída de 0
no shell.
Use ;
em vez de &&
para fazer isso incondicionalmente ou use um pequeno script de wrapper para traduzir os possíveis códigos de retorno que você deseja aceitar como "sucesso" em 0
.
Outro método para desativar a execução de nautilus
instances é obviamente usar pkill
desta maneira:
pkill -u $(whoami) ^nautilus
Você pode querer especificar um sinal específico ( pkill -SIGNALNAME -u ...
), mas não encontrei nenhuma documentação sobre quais sinais nautilus
reagem.
O comando acima mata todas as instâncias de nautilus
em execução como você (o whoami
).
Use isso para descobrir o que o primeiro comando ( nautilus -q
) retornou:
nautilus -q || echo "exit code: $?"
O que você vê? Se não for 0
, então este é claramente o problema da maneira que a lógica do script sugere.