В основном я должен задать два вопроса через это объяснение.

Я использую Red Hat Linux 6.0 ... используя плату Давинчи. Я должен изменить разрешение системных часов, поэтому я меняю HZ env var. Для этого я написал скрипт, чтобы я мог изменить HZ = 1000 и вставить этот скрипт в /etc/profile.d а также написать код для цикла в /etc/profile (как его там не было), чтобы он работал как обычно /etc/profile может загружать скрипты, представленные в /etc/profile.d . Но когда я вхожу в систему на корневом уровне, появляется эта ошибка -bash: ./etc/profile.d/resolution.sh(my script name): No such file or directory

  • Вопрос 1: Почему он показывает ./etc а не /etc Что-то связано с этим ??

  • Вопрос 2: Я пытался добавить скрипт в /etc/init.d но все равно в глобальном масштабе не происходит никаких изменений в значении HZ но это отражается в домашних средствах ~/.bash_profile.swo но когда я делаю экспорт, не отражается почему изменения в /etc/profile должны отражаться во всей системе или я что-то не так понял?


Написанный скрипт (resolution.sh) имеет:

#!/bin/bash
export HZ=1000
---------------------------------------------
The content of /etc/profile which I entered is:

if [ -d /etc/profile.d ]; then
    for i in /etc/profile.d/*.sh; do
        if [ -r $i ]; then
            .$i
        fi
    done
    unset i
fi

И вывод команды grep

-rw-r--r-- 1 root root  535 Feb 4 2004 profile
-rwxr-xr-x 2 root root 4096 Feb 2 2004 profile.d

2 ответа2

0

$i равно /etc/profile.d/resolution.sh , поэтому .$i (./etc/profile.d/resolution.sh) не найден.

Попробуйте убрать точку или выполнить sh $i вместо .$i

0

Каталог /etc/profile.d должен иметь права 0755, а не 0644, как в вашем случае: теперь только пользователь root может читать содержимое и, следовательно, файлы в этом каталоге, независимо от прав доступа к файлам. Таким образом, ваш скрипт не является источником для любого другого пользователя, кроме root.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .