Во время установки используется значение по умолчанию Minimal
, которое не имеет графического интерфейса. Вам нужно выбрать Server With GUI
в главном меню установки, чтобы появился графический интерфейс.
В оболочке dash
нет строк C -($'...'
). Строки C -являются расширением стандарта POSIX. Вам придется использовать буквальную новую строку. Это проще (и выглядит лучше ), если вы сохраняете новую строку в переменной:
#!/bin/dash
nl='
'
for string; do
case $string in
*"$nl"*)
printf '"%s" contains newline\n' "$string"
;;
*)
printf '"%s" does not contain newline\n' "$string"
esac
done
Для каждого аргумента командной строки, переданного сценарию, это определяет, содержит ли он новую строку или нет. Переменная, используемая в операторе case
($string
), не нуждается в заключении в кавычки, а ;;
после последней метки case
не требуется.
Тестирование (из интерактивной zsh
оболочки, из которой исходит дополнительное приглашение dquote>
):
$ dash script.sh "hello world" "hello
dquote> world"
"hello world" does not contain newline
"hello
world" contains newline
Вы можете включить символ новой строки (в кавычки )в качестве шаблона, точно так же, как вы делали это при назначении переменной:
q='
'
case "$q" in
*'
'*) echo nl;;
*) echo NO nl;;
esac
Это делает форматирование некрасивым, (вы не можете делать отступ в конце кавычек ), но должны быть полностью переносимыми. Я тестировал в bash, zsh, ksh и dash.