Função usando watch on command com argumentos de linha de comando

2

Eu quero executar watch em um comando que usa um argumento de linha de comando opcional, como este:

function queue() {
    watch -n 10 'squeue -p ${1:-default} -o "%.8i" '
} 

mas o argumento da linha de comando não é usado, ou seja, o padrão é usado apenas. Eu tentei escapar do $ de acordo com essa resposta (por exemplo, watch -n 10 'squeue -p \${1:-default} -o "%.8i" ' ), mas isso também não funcionou.

Qualquer ajuda apreciada.

    
por DilithiumMatrix 22.06.2015 / 20:02

1 resposta

4

Quando as coisas estão entre aspas simples, nenhuma expansão de variável acontece, tente

function queue() {
    watch -n 10 "squeue -p ${1:-default} -o '%.8i'"
} 

para que as aspas externas sejam duplas, o que fará a expansão da variável dentro da string

    
por 22.06.2015 / 20:05