Ok, então correr gedit myfile.txt
funciona bem. Mas e quanto a abrir um arquivo de dentro de um script bash, usando o aplicativo de desktop padrão vinculado ao tipo de arquivo?
Eu tentei abaixo, o que funciona muito bem quando executado manualmente no terminal, mas quando o coloco em um arquivo bash, nada acontece:
#!/bin/bash
xdg-open "myfile.txt"&
O que devo fazer em vez disso?
Observe que eu preciso que o arquivo permaneça aberto após o fechamento do terminal também.
gedit
com o arquivo listado (ou abre uma nova guia em uma sessão existente). Porém, ele retorna imediatamente, em vez de bloquear até que o programa saia.xtg-open
em*.txt
,*.html
e mais - apenas não vai funcionar.Respostas:
Eu acho que seu script deve funcionar. Mas você pode adicionar algo para obter um pouco mais de informação:
ao executar este script (chamado my_open.sh) em um terminal como este:
Eu recebo a seguinte saída:
que me diz que o caminho para o arquivo está correto, o tipo MIME é reconhecido e o arquivo da área de trabalho usado para abrir o arquivo também está correto. E o gedit abre com o arquivo em questão.
Agora, quando executado em outro arquivo:
Eu recebo a seguinte saída:
Observe o tipo de mim diferente e o arquivo da área de trabalho ausente. No entanto, o xdg-open abre o padrão para todos os arquivos de texto (gedit).
Portanto, você pode adicionar algo assim ao seu script e ver se obtém resultados inesperados (que podem ser adicionados à sua pergunta ...).
fonte
finished script
no final. Eu recomendo [ catb.org/~esr/writings/taoup/html/{ (A arte da programação Unix), a regra do silêncio. Btw .: Backticks estão obsoletos - prefira $ (...), que é aninhado.nohup
ou&
, mas quexdg-open
retorna e permite que você continue.xdg-open
já faz, então isso não é um script qualidade da produção de qualquer maneira ...Faça um script bash test.sh como:
Em seguida, torne o script executável como:
Por fim, execute o script como:
fonte
Talvez gnome-open em vez de xdg-open
fonte
Você está indo na direção correta. Se você deseja que o aplicativo GUI permaneça aberto ao fechar a janela do terminal, basta adicionar um
nohup
no início da linha.Se o aplicativo GUI não estiver abrindo, provavelmente porque você não possui a
DISPLAY
variável de ambiente definida no shell da qual está tentando iniciá-lo. Tente fazer um eco$DISPLAY
fonte
nohup
nem&
A primeira parte da sua pergunta
com o comando,
cat
você pode abrir um arquivo dentro do terminal, se é isso que você deseja (está indicado na primeira parte da sua pergunta).Para usá-lo, basta digitar
cat FILENAME
.Outra informação
Se você precisar de mais comandos: Aqui está uma boa lista de comandos.
Editor padrão do GNOME
Se você deseja abrir o arquivo no aplicativo padrão do GNOME
gedit
.para usá-lo, basta digitar
gedit FILENAME
fonte
gedit file.filetype
, abrirá o arquivo como quiser!Embora eu não tenha certeza do que realmente deve ser realizado aqui e com base em comentários recentes de que um único script deve abrir QUALQUER arquivo no aplicativo padrão ou na medida em que o aplicativo suporta isso.
Se assim for maneira, então mais fácil de fazer isso seria abrindo um terminal e vai scriptname / path / to / filename ou se houver espaços no caminho, então scriptname '/ path / to / filename'
Use isso como um script, você pode usar qualquer nome que desejar para o script, usarei o openit1 como exemplo. É melhor usar scripts diretamente de ~ / bin para adicionar um número ao nome, para que não haja conflito com nenhum comando linux existente
Feche o gedit e no terminal
Reinicie para adicionar ~ / bin ao seu $ PATH
Para chamar, abra um terminal e vá
SE, como orig declarado e usando o orig. script para um arquivo específico por script e invocação por d. clique esquerdo no script, basta escolher " Executar " em vez de "Executar no terminal"
fonte
Restart to add ~/bin to your $PATH
hábitos antigos do Windows? ;)