我正在编写一个 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/