Bash скрипт не обнаруживает второй аргумент - PullRequest
1 голос
/ 21 апреля 2020

Я создаю генератор страниц в bash. При проверке аргумента $ 2 для использования в качестве заголовка страницы, которую я генерирую, он ничего не находит и выводит строку «Заголовок не указан ...».

Вот фрагмент, содержащий $ 2:

header() {
echo "<!DOCTYPE html>" > $filename.html
echo "<html>" >> $filename.html
echo "<head>" >> $filename.html
if [ -z "$2" ]; then
    echo "No title supplied. Using name of the file."
    echo "  <title>$filename</title>" >> $filename.html
else
    echo "  <title>$2</title>" >> $filename.html
fi
echo "  <link rel=\"stylesheet\" href=\"styles.css\">" >> $filename.html
echo "</head>" >> $filename.html
echo "<body>" >> $filename.html
echo "" >> $filename.html
}

Вот ссылка на полный скрипт: https://ghostbin.co/paste/p8qpx

1 Ответ

3 голосов
/ 21 апреля 2020

Внутри функции $2 относится ко второму аргументу этой функции, а не ко всему сценарию. Таким образом, вы должны передать это как параметр при вызове header

Вот так

header "$2"

Тогда внутри вашей функции это будет $1, так как это будет первый параметр этого вызова функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...