linux - Bash 输出仅限于回显

标签 linux bash shell backup echo

我正在编写一个 bash 脚本来处理备份。我创建了一个消息函数 Controller ,它使用函数来处理电子邮件、日志和输出。

所以结构如下:

message_call(i, "这是输出")

消息函数

-> 传递到电子邮件功能 --> 建立邮件文件

-> 传递给日志函数 --> 构建日志文件

-> 传递给 echo 函数(自定义) --> 格式化和回显输入依赖于 $1 作为开关和 $2 作为输出消息

当我 echo 时,我想要干净的输出,它只包含传递给 echo 函数的消息,我可以将所有输出指向/dev/null 但我正在努力限制除 echo 命令之外的所有输出。

当前输出示例:

craig@ubuntu:~/backup/functions$ sudo ./echo_function.sh i test
+ SWITCH=i
+ INPUT=test
+ echo_function
+ echo_main
+ echo_controller i test
+ '[' i == i ']'
+ echo_info test
+ echo -e '\e[32m\e[1m[INFO]\e[0m test'
[INFO] test
+ echo test
test
+ '[' i == w ']'
+ '[' i == e ']'

上面我单独运行了 echo 函数,我想要的输出在第 10 行,我不想要示例中的所有其他输出。

最佳答案

如果您的脚本中有 set -x 行,请将其注释掉。如果没有,请尝试在脚本顶部添加 set +x

关于linux - Bash 输出仅限于回显,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30717358/

相关文章:

linux - 如何在 Linux 中运行二进制文件

linux - 将段落粘贴到 Nano 编辑器中

bash - 使用 bash 通过将文件名减 1 来重命名目录中的所有文件

c - 如何在 C 语言中使用线程创建一个简单的程序?

linux - 在 Ubuntu 18 中使用 Ubuntu 16 的共享库

linux - 使用ffplay在特定窗口位置打开视频

Bash set -u 允许单个未绑定(bind)变量

arrays - Bash 脚本和 gdal - 如何引用数组变量中的元素?

linux - 我的 gumstix linux 镜像中缺少 asm/ioctl.h

linux - 如何在GNU并行中插休眠眠?