Проблема пути экспорта bashrc

В 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)
2
25.12.2020, 13:53
2 ответа
Файл

.bashrcвсегда будет находиться в вашей домашней папке, которая находится по пути ~/.bashrc

.

Просто добавьте следующее к ~/.bashrcи выполнитеsource ~/.bashrc

PATH="$PATH:$HOME/moltemplate/moltemplate" 

Вам не нужно добавлять экспорт в .bashrcи ~в пути означает домашнюю папку пользователя, выполняющего команду,. bashrcвсегда будет в корне вашей домашней папки. Вы также можете использовать $HOMEвместо ~, что также будет указывать на вашу домашнюю папку.

У вас не может быть пробела после знака =, и вам нужно использовать тип кавычек ""вместо "”, который вы использовали

3
18.03.2021, 22:40
  1. exportустанавливает флаг для переменной в текущем контексте, делая ее доступной для суб-оболочек -. Это означает, что его нужно экспортировать только один раз, а не каждый раз при его изменении.
  2. В отличие от большинства других языков, пробелы используются для разделения того, что ошибочно называют «словами». Итак, PATH= "$PATH:$HOME/moltemplate/moltemplate” — это два слова, но присваивание переменной должно быть одним словом. Если вы удалите пробел, назначение будет работать, в противном случае каждое из этих слов станет отдельным параметром - export. И поскольку набор путей, разделенных двоеточием -, определенно не является допустимым именем переменной, вы получаете ошибку «недопустимый идентификатор».
1
18.03.2021, 22:40

Теги

Похожие вопросы