Script de bash: comando ls não encontrado

2

Em Arch USB iso, zsh, executando o script ./test contendo:

#!/bin/bash
PATH=$(dirname $0)
ls $PATH

retorna

ls: command not found

Alguma ideia de como corrigir isso?

EDIT: ls só funciona, mas não quando estou adicionando $ PATH

Edit: acabei percebendo pelos comentários que $ PATH é uma variável de ambiente e eu estava substituindo seu valor ...

    
por ChiseledAbs 25.07.2016 / 16:10

3 respostas

3

A variável PATH é especial. Existem muitas variáveis especiais (e todas são todas de capital, tão facilmente evitadas). PATH contém uma lista de diretórios para procurar comandos.

Para diversão e aprendizado (embora sejam a mesma coisa), digite echo $PATH , fora do script, para ver o que ele contém.

Para corrigir o problema, não quebre o PATH: use um nome de variável diferente (nem todas as maiúsculas).

    
por 25.07.2016 / 16:48
1

Teste /bin/ls , parece que ls não está no caminho como @ 123 mencionou no comentário.

Para adicionar /bin ao PATH . Adicione em ~/.bashrc

export $PATH=$PATH:/bin
    
por 25.07.2016 / 16:32
0

Tente:

#!/bin/bash
PATH="$PATH:$(dirname $0)"
ls $PATH

Dessa forma, você está adicionando $(dirname $0) à variável PATH, em vez de substituí-la. Ou, se você não quiser editar a variável de ambiente e quiser usar $(dirname $0) separadamente, use um nome de variável diferente.

    
por 25.07.2016 / 17:07