В GNU head
или совместимом с ним вы можете использовать отрицательные числа для удаления заданного количества строк в конце файла:
parm=$(head -n -2 < a.txt | paste -sd, -)
Сzsh
:
parm=${(j:,:)"${(@f)$(<a.txt)}"[1,-3]}
(остерегайтесь, что $(<a.txt)
удаляет все завершающие символы новой строки, поэтому также удаляет завершающие пустые строки, а [1,-3]
удаляет 2 дополнительные строки ).
POSIXly:
parm=$(sed '$d' < a.txt | sed '$d' | paste -sd, -)
Или сawk
:
parm=$(awk 'NR>2 {printf "%s", sep b; sep = ","}
{b = a; a = $0}' < a.txt)
.bashrc
всегда будет находиться в вашей домашней папке, которая находится по пути ~/.bashrc
Просто добавьте следующее к ~/.bashrc
и выполнитеsource ~/.bashrc
PATH="$PATH:$HOME/moltemplate/moltemplate"
Вам не нужно добавлять экспорт в .bashrc
и ~
в пути означает домашнюю папку пользователя, выполняющего команду,. bashrc
всегда будет в корне вашей домашней папки. Вы также можете использовать $HOME
вместо ~
, что также будет указывать на вашу домашнюю папку.
У вас не может быть пробела после знака =
, и вам нужно использовать тип кавычек ""
вместо "”
, который вы использовали
export
устанавливает флаг для переменной в текущем контексте, делая ее доступной для суб-оболочек -. Это означает, что его нужно экспортировать только один раз, а не каждый раз при его изменении. PATH= "$PATH:$HOME/moltemplate/moltemplate”
— это два слова, но присваивание переменной должно быть одним словом. Если вы удалите пробел, назначение будет работать, в противном случае каждое из этих слов станет отдельным параметром - export
. И поскольку набор путей, разделенных двоеточием -, определенно не является допустимым именем переменной, вы получаете ошибку «недопустимый идентификатор».