我有一个包含这样内容的 shell 程序
!#/bin/bash
echo \\n program
一旦我在 Linux 以外的平台上运行该程序,它就会识别特殊字符并将输出显示为
(newline)
program
当同一个程序在 Linux 上运行时,echo 命令需要“-e”选项。现在我不想在我的文件中显式地用“echo -e”更改每次出现的回声,因为这样会开始在其他平台上产生问题。所以我想做一个条件编译,比如
set SYSTEM="uname -s"
#if ($SYSTEM == Linux)
set echo="echo -e"
#endif
但这不起作用,因为使用 set 或 export 命令,我需要用 $echo 替换所有出现的 echo,我不想这样做。再次设置别名并不能解决此问题,因为即使在 subshell 中我也需要将 echo 替换为“echo -e”。
有没有其他方法可以用“echo -e”代替echo,仅适用于Linux平台?