0

我想为我的组织编写一个登录脚本,该脚本需要通过组 ID 发现用户,然后在他们的计算机上定义他们需要的地图驱动器。

我开始写下脚本,它看起来像这样:

ID
if [gid=10524657]
then
    mkdir /home/likewise-open/Domain/Username/Desktop/Share
    sudo mount.cifs //fs01/salesnew /home/likewise-open/Domain/Username/Desktop/share -o user=X
else [gid=41654564] (etc....)

那是我第一次在 Ubuntu 中编写脚本,

你能告诉我我在做什么错吗?

Linux 是否可以通过 ID 命令识别 gid?如果不是什么是替代选择?

有人可以建议吗?

4

2 回答 2

2

哦,从哪里开始...

首先,*nix 系统几乎总是区分大小写,所以它是id和不是ID

其次,id -g会给你GID。

第三,您可能希望捕获id -g变量中的值:

GID=$(id -g)

然后你需要if在 bash 中遵循正确的语句形式:

if [ "$GID" == "10524657" ]
then
   # do something
elif [ "$GID" == "41654564" ]
then
   # do something else
else
   # do the other thing
fi

毕竟,您应该考虑sudo命令可能是交互式的事实,因此脚本将停止,等待用户交互,但从脚本运行它可能无法访问 tty(阅读:来自用户交互的输入)。

因此,请先对 bash 脚本进行基本介绍

于 2013-11-03T15:50:29.720 回答
0

首先,请注意[and]实际上是保留字,因此,您需要在它们周围使用空格(或分号或其他任何分隔单词的东西)。

你可以像这样获得有效的gid

GID=`id -g`

那么你可以做

if [ "$GID" == "10524657" ]; then
    # some stuff
elif [ "$GID" == "41654564" ]; then
    # other stuff
else
    # else stuff
fi
于 2013-11-03T15:47:00.737 回答