Make Trickle recebe o $ PATH correto

1

Trickle é um programa de limitação de largura de banda. Eu tenho o seguinte script para trickle.

#!/bin/bash
echo $PATH
trickle -s -t 3 -u 200 -d 200 "$@"

Eu tenho um script em ~ / bin / que deseja executar o script. Eu

$ my_trickle.sh new_script.sh
/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games:~/bin
trickle: exec(): No such file or directory

Funciona se eu executar my_trickle.sh ~/bin/new_script.sh

Por que o gotejamento não reconhece o $ PATH corretamente? Posso obtê-lo para localizar new_script.sh localizado em ~ / bin /?

    
por Rucent88 10.02.2014 / 10:22

2 respostas

1

De acordo com o documento de padrões de shell , a expansão de til deve ocorrer quando uma variável de shell é atribuída se o til estiver no início de uma palavra ou se seguir um cólon sem aspas.

Portanto, é um pouco incomum para um til bruto acabar no meio da sua variável PATH :

/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin:/usr/games:~/bin

Mas está lá, e o shell não vai expandi-lo para ser seu diretório pessoal quando procurar PATH para encontrar um executável.

A correção mais fácil é alterar ~ para $HOME em qualquer conjunto de arquivos init PATH . Eu suponho que há algumas aspas duplas nessa declaração que estão impedindo que ~ seja expandido.

    
por 10.02.2014 / 17:26
1

Altere ~/bin para $HOME/bin do arquivo que define $ PATH.

Provavelmente seu ~ / .bashrc ou ~ / .profile

    
por 11.02.2014 / 03:27