Вывести текущий ПУТЬ в текстовый файл с помощью сценария BASH [закрыто]

я пытаюсь вывести PATH, используемый компьютером, в простой текстовый файл.

Что-то вроде echo PATH> PATH.TXT или >> PATH.TXT

С двойным >> он работает, но выводит каждое на другой строке, и если я использую одиночный, конечно, он перезаписывает предыдущую строку с помощью следующий. Использование% ~ dpo> PATH.TXT или% ~ fo >> PATH.TXT, или даже% ~ nx0 >> PATH.TXT не дает мне желаемого результата. Проще говоря, я хочу поместить PATH в текстовый файл для резервного копирования с использованием BATCH-файла, если я сделаю что-то глупое, например HELP PATH, которое полностью изменит PATH.

Заранее благодарим за любую помощь.

0
задан 10 December 2018 в 10:32

2 ответа

Вы изменяете Ваш PATH с командой:

PATH=/new-path:$PATH

Например, вот то, как правильно развернуть ПУТЬ:

$ PATH=/newpath:$PATH
$ echo $PATH
/newpath:/home/rick/bin:/home/rick/.local/bin:/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin

Вот всего один способ повредить Ваш ПУТЬ (путем исключения $ префикс):

$ PATH=/brokenpath:PATH
$ echo $PATH
/brokenpath:PATH

Если Вы обычно портите свой ПУТЬ, можно просто закрыть терминал и вновь открыть его.

Исключение $ ошибка, сделанная в Вашем вопросе также. Метод для получения ПУТИ к текстовому файлу:

echo $PATH > PATH.TXT

Для хранения синхронного журнала изменений ПУТИ, можно использовать:

echo $PATH >> PATH.TXT

ПУТЬ является переменной окружения. Для установки переменной, мы используем "ПУТЬ =", но ссылаться это - содержание, мы должны использовать "$PATH".


Переменная ПУТИ может быть установлена во многих местах, как обрисовано в общих чертах в этом Вопросы и ответы: Где мой ПУТЬ является переменным быть установленным?. Для обнаружения, какие файлы устанавливают ПУТЬ, который один из ответов рекомендует использовать:

grep --color -H 'PATH=' ~/.bashrc ~/.profile ~/.bash_profile ~/bash.login \
                     ~/.bash_aliases /etc/bash.bashrc /etc/profile \
                     /etc/profile.d/* /etc/environment 2> /dev/null

На моей машине возвраты команды:

/home/rick/.profile:PATH="$HOME/bin:$HOME/.local/bin:$PATH"
/etc/profile.d/apps-bin-path.sh:    export PATH=$PATH:${snap_bin_path}
/etc/profile.d/jdk.sh:export PATH=$PATH:/usr/lib/jvm/java-8-oracle/bin:/usr/lib/jvm/java-8-oracle/db/bin:/usr/lib/jvm/java-8-oracle/jre/bin
/etc/environment:PATH="/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
1
ответ дан 26 October 2019 в 23:28

Можно распечатать ПУТЬ к текстовому файлу со следующим кодом:

echo $PATH >> PATH.txt

Если Вы хотите петлять, чтобы сделать это, несомненно, добавят хижину к вершине:

#!/bin/bash
echo $PATH >> PATH.txt
1
ответ дан 26 October 2019 в 23:28

Другие вопросы по тегам:

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