Я получаю ошибку из этого скрипта
#!/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 ""
Ошибка, данная мне системой
./my_first_program.sh: Line 14: unexpected token `| ' Syntax error near
./my_first_program.sh: Line 14: `echo -e "${green} |_| |_|___/___/"'
Как я могу это исправить?
В строке
echo -e "${green} | | | \__ \__ \"
\
перед "
удаляет специальное значение "
и делает его обычным символом, который не заканчивает строку. Таким образом, строка продолжается до следующей строки, пока "
перед ${green}
и следующие ${green} |_| |_|___/___/
больше не будут заключены в кавычки, что вызывает ошибку.
Добавьте пробел после \
, чтобы предотвратить его выход из "
:
echo -e "${green} | | | \__ \__ \ "
Хорошо, я внес изменения в ваш скрипт, и вот код:
#!/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 ""
Изменение заключается в использовании \\"
вместо \"
. Это печатает обратную косую черту литерала и затем заканчивает цитированием , вместо печати литерала "
и не заканчивая кавычки. (Оболочка обрабатывает как обратный слеш , так и двойные кавычки , особенно при некоторых обстоятельствах.)