Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6636461
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: LINUX

2020-08-21 10:02:49

我在Ubuntu下写了个Shell,想要根据登录用户不同判断是否有执行某操作的权限。基本代码如下:

点击(此处)折叠或打开

  1. # !/bin/bash
  2. ROOT_UID=0
  3. if [ "$UID" -ne "$ROOT_UID" ]
  4.   then
  5.      echo "cannot execute this script."
  6.      exit 1
  7. fi
  8. ......
当我使用sh xxx.sh执行时,报第三行存在无效数字。但给予脚本执行权限使用./xxx.sh却是正常的。
当时很迷惑,难道这两个执行方式有区别。
无意中,查看sh命令,发现他是指向Ubuntu的dash的链接,而不是bash。然后执行dash,再执行echo $UID发现确实是空的。问题原因找到。原来是在dash下没有UID环境变量。
看来各种shell的解释器还是有很大不同的。
特别记录下来分享给大家。
阅读(2223) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~