全局值没有改变,脚本也没​​有加载

全局值没有改变,脚本也没​​有加载

基本上,我必须通过这个解释来提出两个问题。

我正在使用 Red Hat Linux 6.0 ... 使用 davinchi 主板。我必须更改系统时钟分辨率,因此我正在更改HZ环境变量。为此,我编写了脚本,以便我可以更改HZ = 1000并插入该脚本/etc/profile.d,并编写循环代码/etc/profile(因为它不在那里),以便在正常运行时/etc/profile可以加载存在的脚本/etc/profile.d。但是当我以 root 级别登录系统时,会显示此错误-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

答案1

目录的/etc/profile.d权限应为 0755,而不是您的情况中的 0644:现在只有 root 用户才能读取内容,从而读取该目录中的文件,而不管文件权限如何。因此,除了 root 用户之外,其他任何用户都无法正确获取您的脚本。

答案2

$i等于/etc/profile.d/resolution.sh,所以未找到.$i( )。./etc/profile.d/resolution.sh

尝试删除点,或者执行sh $i,而不是.$i

相关内容