2012-09-20 133 views
1

我已經繼承了以下腳本來在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 

回答

0

[ ! -r ... ]測試不會告訴你/卷/ UserStorage /用戶/ $ 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任何人都知道目的是什麼在最後find ... chmod701

IHTH

1

@shellter thanks!我在回聲線上添加了一個閉合引號,它完美地工作!

成品腳本片段:

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 
+0

TNX,得到了它。 '>&2'發送錯誤信息給std-err,這是「標準」:-)。祝你好運。 – shellter