Piszę skrypt instalacyjny, który będzie uruchamiany jako /bin/sh
.
Jest wiersz z pytaniem o plik:
read -p "goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] " REPLY
Chciałbym podzielić tę długą linię na wiele linii, aby żaden z nich nie przekraczał 80 znaków. Mówię o wierszach w kodzie źródłowym skryptu; nie chodzi o wiersze, które mają być faktycznie wydrukowane na ekranie podczas wykonywania skryptu!
Co próbowałem:
Pierwsze podejście:
read -p "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? [Y|n] " REPLY
To nie działa, ponieważ nie jest drukowane
Would you like to add this feature? [Y|n]
.Drugie podejście:
echo "goat can try change directory if cd fails to do so. " \ "Would you like to add this feature? [Y|n] " read REPLY
Nie działa tak dobrze. Drukuje znak nowej linii po znaku zachęty. Dodanie
-n
opcji doecho
nie pomaga: po prostu drukuje:-n goat can try change directory if cd fails to do so. Would you like to add this feature? [Y|n] # empty line here
Moje obecne obejście to
printf '%s %s ' \ "goat can try change directory if cd fails to do so." \ "Would you like to add this feature? [Y|n] " read REPLY
i zastanawiam się, czy jest lepszy sposób.
Pamiętaj, że szukam /bin/sh
kompatybilnego rozwiązania.