问题:

问题:

问题:

我希望这会是一件简单的事情。我目前的脚本更改了我的目录等,我希望我可以使用脚本更改行回声始终显示当前目录。我想到的一个简单的例子是(请注意,所使用的目录是任意的,实际上并不正确):

TL;博士;

我只想在脚本顶部有一行告诉我当前目录。然后,当脚本的其余部分正在运行时,如果目录发生变化,我希望顶行随之更改以始终显示当前目录

代码:

echo -e "Current Directory $PWD"
echo -en "\e[0K\r Finding folder"
cd /home/accounts
echo -en "\r\033[0K Inside folder"
cd /apps/foo/bar
echo -e "\e[0K\r Welcome to the app, enjoy!"

预期输出:

初始执​​行时(执行第一个 cd 命令之前)

Line 1: Current Directory: /var/www/project
Line 2: Finding Folder

执行第一个 cd 命令后

Line 1: Current Directory: /home/accounts
Line 2: Inside Folder

执行第二个cd命令后

Line 1: Current Directory: /apps/foo/bar
Line 2: Welcome to the app, enjoy!

答案1

要设置提示,请使用变量PS1not echo。在bash你也可以使用PROMPT_COMMAND.

EG 使用提示代码

PS1='# \w '

或使用命令

PS1="$(pwd)"

或变量

PS1="$PWD"

答案2

您可以在脚本中使用别名来执行此操作:

alias echo='printf "Current Directory: $PWD\n" && echo'

请注意,如果将此行添加到脚本中,它将不会echo在脚本外部发生更改。如果你想获得 echo 的常规行为,你可以斜杠转义它:

\echo This will not produce the Current Directory line

相关内容