dirname /home/USER/Desktop/script.sh
Como eu poderia modificar este INPUT:
/home/USER/Desktop/script.sh
para este OUTPUT:
/home/USER/Desktop/
... usando bash
ou perl
?
É claro que script.sh
poderia ser qualquer coisa: (por exemplo, scrasdfipt.sh
, etc) e o caminho antes que pudesse ser qualquer coisa.
Para a pergunta exata , você pode usar
printf "$(dirname /home/USER/Desktop/script.sh)/"
Eu estou supondo que este é um problema XY , e você quer se referir a um arquivo no mesmo diretório como o script atual . Em caso afirmativo:
current_dir="$(dirname -- "$0")"
Neste ponto, você pode fazer coisas como
source "${current_dir}/foo.sh"
echo foo > "${current_dir}/bar.txt"
Usando o bash:
$ dirname -- "$string"
Você também pode obter o último bit da mesma maneira:
$ basename -- "$string"
Além do dirname
proposto, você também pode remover um susbstring usando expansão de parâmetro :
dir=/home/USER/Desktop/script.sh
echo ${dir%/*}
/home/USER/Desktop
Tags shell