基本上,我必须通过这个解释来提出两个问题。
我正在使用 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
。