Como mostrar os parâmetros de comando na mensagem notify-osd?

0

Eu quero usar notify-osd para mostrar as notificações da área de trabalho. Um valor dado como parâmetro de entrada também deve ser exibido.

Script:

param="parameter $1"
echo "${param}"
echo 'notify-send "param no value"' | at now
echo 'notify-send "${param}" "param with value"' | at now

Problema: a primeira notificação é exibida corretamente. Mas a notificação usando ${param} nunca é mostrada. Por quê?

( at now será mais tarde substituído pelo horário programado)

    
por membersound 17.11.2017 / 14:43

1 resposta

0

Isso ocorre porque o segundo ${param} está dentro de aspas simples, o que significa que ele é interpretado quando o comando é executado por at, que não herdou a variável, pois ela não foi exportada.

Como é uma string vazia nesse ponto, notify-send sai com um erro, pois é necessário um resumo não vazio.

Você pode usar export a uma variável para conter o valor que deseja usar e usar essa variável dentro das aspas simples para obter o valor passado. Ou, como at lê de stdin , você pode simplesmente despejar um script diretamente sem escape estranho, assim:

#!/bin/sh
at now << EOF
notify-send "${param}" "param with value"
EOF
    
por dobey 17.11.2017 / 15:20