在我使用以下命令后,
pngString="$(cat example.png)"
echo -n "$pngString" > tmp.png
Run Code Online (Sandbox Code Playgroud)
我无法将 tmp.png 作为 PNG 文件打开。当我$pngString用来存储图像文件时,可能会丢失一些信息。
所以问题是:如何在 bash 脚本中使用变量存储完整的图像信息?
我的终端主题曾经是这样的,

但我认为提示浪费了太多空间。后来我有了一个想法,每次运行命令时我都可以清除提示。我正在使用 bash,解决方案之一是使用该preexec_invoke_exec功能。
我使用以下命令清除最后一个提示字符:
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
Run Code Online (Sandbox Code Playgroud)
这样终端就很干净了,像这样,

但是现在我的问题是,如果我想在一行中使用多个命令就会出现问题,比如说,当我使用for i in ....
这是我的 .bashrc 中函数的完整版本,
preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`history 1 | sed -e "s/^[ …Run Code Online (Sandbox Code Playgroud)