问题:
我希望这会是一件简单的事情。我目前的脚本更改了我的目录等,我希望我可以使用脚本更改行回声始终显示当前目录。我想到的一个简单的例子是(请注意,所使用的目录是任意的,实际上并不正确):
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
要设置提示,请使用变量PS1
not 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