Como reconstruir meu PATH no script?

Como reconstruir meu PATH no script?

Extraí meu PATH para um arquivo e listei-o assim:

/bin
/usr/bin
/usr/local/bin
.
/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin
/usr/java/default/bin
/usr/kerberos/bin
/usr/local/bin
/bin
/usr/bin

Agora desejo extraí-lo deste arquivo e restaurá-lo como uma linha em um novo arquivo com dois pontos entre cada diretório. Estou recebendo um arquivo vazio, alguém pode me mostrar o que estou fazendo de errado, por favor? Este é o comando que estou executando para realizar a restauração do arquivo:

echo -e ${bash_list tr \\ :\n} > bash_PATH

Responder1

trrecebe entrada de STDIN (entrada padrão). Experimente isto:

$ tr '\n' ':' > output_file  < input_file

Você usou uma sintaxe para a expansão de parâmetros do Bash, mas está usando um arquivo como parâmetro que não está correto, pois o parâmetro só pode ser variável ou um parâmetro shell especial.

Para fazer o que você está tentando usar apenas bash:

$ var="$(<bash_list)"
$ echo "${var//$'\n'/:}" > bash_PATH

Agora bash_PATHo arquivo conterá:

/bin:/usr/bin:/usr/local/bin:.:/usr/lib/oracle/xe/app/oracle/product/10.2.0/client/bin:/usr/java/default/bin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin

Observe também que você tem nomes de diretório duplicados em "$PATH" (espero que sejam intencionais, por exemplo), para remover as duplicatas sem alterar a ordem, você pode tentaresse.

informação relacionada