A razão pela qual eu preciso fazer isso é ter variáveis de 'atualização' no meu PS1. Eu gostaria de ter o meu período de tempo em toda a largura do terminal, não envolvendo ou indo para uma nova linha. Para isso, eu já encontrei uma maneira de fazê-lo funcionar, mas esse método requer que eu recarregue o bash todas as vezes. Aqui está o que eu gostaria que parecesse:
|me::awesome| --------------------------------------------------------- ~/.config/awesome
$
Depois disso, quando eu fizer um cd em um novo diretório, ele ficará assim:
|me::themes| -------------------------------------------------------------------------
------ ~/.config/awesome/themes
$
Mas quando eu corro
exec bash
ele alterará com sucesso todos os valores e ficará assim:
|me::themes| --------------------------------------------------- ~/.config/awesome/themes
$
Então, estou procurando uma maneira de incorporar variáveis variáveis em minha variável PS1, que eu gostaria de atualizar toda vez que um novo prompt fosse chamado. Isto é o que meu .bashrc parece no momento:
mytest=$PWD
mynext="$(basename $PWD)"
mylength=$((${#mytest}+${#mynext}))
length=$(($mylength+6))
PS1='|me::\W| $(printf "\u2500%.0s" $(seq $length $(tput cols))) \w\n\$'
Eu também tentei colocar as variáveis em um arquivo de script de shell separado e executá-lo dentro do meu PS1, da seguinte maneira:
#/home/me/.PS1.sh
mytest=$PWD
mynext="$(basename $PWD)"
mylength=$((${#mytest}+${#mynext}))
length=$(($mylength+6))
echo "|me::\W| $(printf "\u2500%.0s" $(seq $length $(tput cols))) \w\n\$"
#/home/me/.bashrc
PS1=$(/home/me/.PS1.sh)