Concatenar pwd e basename [closed]

0

Eu quero atribuir o caminho e o nome do arquivo a uma variável:

/path/to/myfile/file.txt

Por exemplo

MYFILE=$(pwd)$(basename)

Como posso fazer isso?

    
por Omar BISTAMI 09.02.2018 / 12:01

2 respostas

2

Para responder à pergunta, como é dito: Esta é uma concatenação simples de string.

somedirpath='/some/path'  # for example $PWD or $(pwd)
somefilepath='/the/path/to/file.txt'

newfilepath="$somedirpath"/"$( basename "$somefilepath" )"

É mais provável que você queira incluir um / entre os dois elementos do caminho ao concatenar as strings e basename recebe um argumento que é um caminho (isso estava faltando na pergunta).

Ao ler sua outra resposta, parece que você está procurando pelo caminho e nome do script bash . Isso está disponível em BASH_SOURCE , que é uma matriz. É apenas um elemento (a menos que você esteja em uma função) será o que você quer. No caso geral, é o elemento último na matriz que você quer ver.

Em bash 4,4, isso é ${BASH_SOURCE[-1]} .

    
por 09.02.2018 / 12:43
0

Eu tentei isso e funcionou:

#!/bin/bash
SCRIPT=$(pwd)$(basename $0)
echo $SCRIPT

Se houver uma maneira melhor, por favor, compartilhe.

    
por 09.02.2018 / 12:05