添加支票到帐户创建脚本

时间:2012-09-20 01:01:12

标签: shell

我继承了以下脚本来在OSX中创建帐户。

我想在其中加入一个检查,首先检查目的地是否已存在具有该名称的帐户,如果是,则回显“帐户存在”消息,然后不采取任何其他操作然后移动上。

典型的/tmp/list.txt只包含短名称,即:

jdoe
brianx
peterm
smithd

非常感谢您的帮助!

#! /bin/sh

if [ $# -ne 1 ]
then
        echo mkhdir: Did not find required argument: group name
        echo Usage: mkhdir \[group\]
        exit 1
fi

for i in  `cat /tmp/list.txt` ; do
if [ ! -r /Volumes/UserStorage/Users/$i ]
   then
      mkdir /Volumes/UserStorage/Users/$i
      mkdir /Volumes/UserStorage/Users/$i/Backups
fi
chown -R $i:$1 /Volumes/UserStorage/Users/$i
chmod -R 700 /Volumes/UserStorage/Users/$i
find /Volumes/UserStorage/Users/$i -type d -exec chmod 701 {} \;
done

2 个答案:

答案 0 :(得分:1)

@shellter谢谢!我在回声线上加了一个右引号,效果很好!

完成的脚本代码段:

for i in  `cat /tmp/list.txt` ; do
    if [ ! -d /Volumes/UserStorage/Users/$i ] ; then
         mkdir /Volumes/UserStorage/Users/$i
    else 
       echo "/Volumes/UserStorage/Users/$i already exists" >&2
    fi
    if [ ! -d /Volumes/UserStorage/Users/$i/Backups ] ; then
        mkdir /Volumes/UserStorage/Users/$i/Backups
    else
        echo "/Volumes/UserStorage/Users/$i/Backups already exists" >&2
    fi
    chown -R $i:$1 /Volumes/UserStorage/Users/$i
    chmod -R 700 /Volumes/UserStorage/Users/$i
    find /Volumes/UserStorage/Users/$i -type d -exec chmod 701 {} \;
done

答案 1 :(得分:0)

[ ! -r ... ]的测试不会告诉您/ Volumes / UserStorage / Users / $ i是否是目录。使用

for i in  `cat /tmp/list.txt` ; do
    if [ ! -d /Volumes/UserStorage/Users/$i ] ; then
         mkdir /Volumes/UserStorage/Users/$i
    else 
       echo "/Volumes/UserStorage/Users/$i already exists" >&2
    fi
    if [ ! -d /Volumes/UserStorage/Users/$i/Backups ] ; then
        mkdir /Volumes/UserStorage/Users/$i/Backups
    else
        echo "/Volumes/UserStorage/Users/$i/Backups already exists" >&2
    fi
    chown -R $i:$1 /Volumes/UserStorage/Users/$i
    chmod -R 700 /Volumes/UserStorage/Users/$i
    find /Volumes/UserStorage/Users/$i -type d -exec chmod 701 {} \;
done

701任何人都知道701 find ... chmod中{{1}}的目的是什么?

IHTH