为什么我收到来自 | 的语法错误 在这个脚本中?

a12*_*027 1 bash scripts

我从这个脚本中得到一个错误

#!/bin/bash

red="\033[31m"
green="\033[32m"
yellow="\033[33m"
blue="\033[34m"
pink="\033[35m"
cyan="\033[36m"
white="\033[37m"
echo ""
echo -e  "${green}       _ __  ___ ___ "
echo -e  "${green}      | '_ \/ __/ __|"
echo -e  "${green}      | | | \__ \__ \"
echo -e  "${green}      |_| |_|___/___/"
echo -e "${blue}        Welcome My first program"
echo ""
Run Code Online (Sandbox Code Playgroud)

系统给我的错误

./my_first_program.sh: Line 14: unexpected token `| ' Syntax error near
./my_first_program.sh: Line 14: `echo -e  "${green} |_| |_|___/___/"'
Run Code Online (Sandbox Code Playgroud)

我该如何解决?

Flo*_*sch 9

在行中

echo -e  "${green}      | | | \__ \__ \"
Run Code Online (Sandbox Code Playgroud)

the \before"删除了 the 的特殊含义,"使其成为不以字符串结尾的普通字符。所以字符串继续到下一行,直到"之前${green}和后面${green} |_| |_|___/___/不再被引用,这会导致错误。

在 之后添加一个空格\以防止它转义"

echo -e  "${green}      | | | \__ \__ \ "
Run Code Online (Sandbox Code Playgroud)

  • +1 ...或转义反斜杠本身,即`echo -e "${green} | | | \__ \__ \\"` (3认同)