免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1526 | 回复: 5
打印 上一主题 下一主题

[系统安装] 有关profile文件的问题 [复制链接]

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-03-03 12:05 |只看该作者 |倒序浏览
各位大神,请问profile文件中:

if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

这段shell语言是什么意思,谢谢!

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
2 [报告]
发表于 2015-03-03 14:44 |只看该作者
经过一番查找,终于弄明白其中的意思了:
首先判读/usr/bin/id文件是否有执行权限,
然后判断EUID值是否为空,
如果为空,则把命令"id -u"的返回值赋值于EUID,把命令"id -ru"的返回值赋值于UID并结束判断
将命令"id -un"的返回值赋值于USER
将USER的内容赋值于LOGNAME
把/var/spool/mail/目录中USER的内容赋值于MAIL并结束判断

写的比较随意,欢迎各位大神指正,一同进步。
回复 1# 夏织风


   

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
3 [报告]
发表于 2015-03-04 18:00 |只看该作者
if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
        # ksh workaround
        EUID=`id -u`
        UID=`id -ru`
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi

-x /usr/bin/id :判断是否可执行
-z "$EUID" :判断$EUID变量是否是空字符串
如果都成立,
EUID=`id -u`,把`id -un`返回值赋值给EUID
UID=`id -ru`,把`id -un`返回值赋值给UID

把`id -un`返回值赋值给USER
LOGNAME=$USER,将$USER变量的值赋值给LOGNAME
MAIL="/var/spool/mail/$USER",将"/var/spool/mail/$USER"这一段内容赋值给MAIL

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
4 [报告]
发表于 2015-03-05 09:08 |只看该作者
请问:
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER
这两个语句是在第一个if成立的条件下,才进行的吧。无论第二个if是否成立,都要执行的,是不是?
回复 3# lyhabc


   

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
5 [报告]
发表于 2015-03-05 10:23 |只看该作者
夏织风
if [ -x /usr/bin/id ]; then
    if [ -z "$EUID" ]; then
       xxxxx
    fi
    USER="`id -un`"
    LOGNAME=$USER
    MAIL="/var/spool/mail/$USER"
fi
对的,第一个if成立就执行,看一下作用域

论坛徽章:
1
2015年迎新春徽章
日期:2015-03-04 10:16:53
6 [报告]
发表于 2015-03-06 08:32 |只看该作者
谢谢楼上的回复,我明白了。
回复 5# lyhabc


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP