Ошибка «dircolors: не указана переменная среды SHELL и не задана опция типа оболочки»

Технически говоря , это способ доступа ко всему файлу без необходимости чтения и записи всего содержимого, и он может быть полезен для огромных файлов или если осталось мало места:

$ mkfifo myImage.iso
$ cat xa{a..g} > myImage.iso &

А затем используйте myImage.iso , например

$ md5sum myImage.iso

Хотя, конечно, myImage.iso - это специальный файл (именованный канал), а не обычный файл, поэтому он может быть полезен или нет, в зависимости от того, что вы пытаетесь сделать.

7
16.01.2016, 05:06
2 ответа

Есть несколько мест, где вы могли бы использовать скрипт помимо ~/.bashrc или /etc/profile; без подробностей о том, какие изменения вы внесли, вы получите только общий совет. Например, вы могли

  • изменить или добавить файл в /etc/profile.d
  • изменить ваш ~/.profile или ~/.bash_profile
  • запустить терминал через скрипт (или "пусковую установку" рабочего стола)

Вы можете найти возможные места с помощью grep, например,

$ grep -r -l dircolors /etc ~ 2>/dev/null
/etc/profile.d/colorls.csh
/etc/profile.d/colorls.sh
/etc/DIR_COLORS
/etc/DIR_COLORS.lightbgcolor
/etc/DIR_COLORS.256color

Сообщение об ошибке исходит от dircolors (см. исходный код), которая делает это, когда ваша переменная окружения SHELL либо не установлена, либо пуста (см. исходный код для проверки).

2
27.01.2020, 20:19

Если вам не нужны dircolors (цветной вывод из «ls»), когда SHELL не установлен, то заключите вашу команду eval dircolors в «if».

Если вы всегда используете / bin / bash, то, возможно, сделайте это так:

# enable color support of ls and also add handy aliases
if [ $SHELL = "/bin/bash" -a -x /usr/bin/dircolors ]; then
    test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
    alias ls='ls --color=auto'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'
    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'
fi
0
27.01.2020, 20:19

Теги

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