Unix。Shell脚本

Unix。Shell脚本,shell,unix,Shell,Unix,我有一个脚本,它为我的项目的其余部分打印出一个表。然而,我的项目运作良好。当我使用脚本时,它会在gui界面上打印出两个错误。我没有安装banner命令或sudo来使用这些图形界面 #!/bin/bash Welcome() { echo " |-------------------------- | Red Hat | | Enterprise Linux | | | | Server

我有一个脚本,它为我的项目的其余部分打印出一个表。然而,我的项目运作良好。当我使用脚本时,它会在gui界面上打印出两个错误。我没有安装banner命令或sudo来使用这些图形界面

#!/bin/bash


Welcome()
{
echo
"
|--------------------------
|          Red Hat         |
|     Enterprise Linux     |
|                          |
|    Server Release 5.3    |
|     Codename Tikanga     |
----------------------------
"
}

Welcome
但是它打印出了这个

working: line 129:

    |--------------------------
    |          Red Hat         |
    |     Enterprise Linux     |
    |                          |
    |    Server Release 5.3    |
    |     Codename Tikanga     |
    ----------------------------

: command not found
而不仅仅是

|--------------------------
|          Red Hat         |
|     Enterprise Linux     |
|                          |
|    Server Release 5.3    |
|     Codename Tikanga     |
----------------------------

在shell脚本中,命令以行尾结束。所以你有一个

echo
它打印一个空行,后面是几行胡言乱语,shell试图将这些胡言乱语解释为它找不到的命令。因此,错误消息是由shell打印的,而不是脚本的回显

现在想在解决方案中进行编辑,但anubhava抢先完成了。他的解决方案之所以有效,是因为行尾位于由“”开始的字符串内,因此包括换行符在内的整个字符串都被解释为echo命令的一部分。

您需要使用:

echo '
|--------------------------
|          Red Hat         |
|     Enterprise Linux     |
|                          |
|    Server Release 5.3    |
|     Codename Tikanga     |
----------------------------'
基本上在同一行的echo之后开始报价