elgio
(usa OpenSuSE)
Enviado em 22/04/2008 - 12:02h
O que ela quer é que o script liste os arquivos de onde ele está e não de onde foi chamado.
#!/bin/bash
ls -la `dirname $0`
Se o script estiver em /usr/bin, sempre que o executar ele irá listar os arquivos de /usr/bin, mesmo que eu o chame de /home
E o script listaria os de /usr/local/sbin se estivese lá.
Por isto que usei o $0
Este parâmetro nada mais é do que o path e nome do que se executou. Se eu chamo:
$ lixo.sh
E lixo estiver em /usr/local/bin o $0 dele será /usr/local/bin/lixo.sh (facilmente mostrado com um echo $0).
Logo, ao extrair o dirname de $0 está-se sempre pegando o diretório onde o script está. Então basta um ls -la `dirname $0` como mencionei.