[英]How to write a shell (.sh) script for the following
我是linux / unix shell腳本的新手,我有幾十個項目想要為其設置Subversion文件夾(最終,我將進入Git大聲笑)。 如何編寫腳本來執行以下操作:
svnadmin create /var/www/svn/<sub-folder> svn import /var/www/<sub-folder> file:///var/www/svn/<sub-folder> chmod -R 777 var/www/svn/<sub-folder> chown -R apache.apache var/www/svn/<sub-folder>
根據到目前為止在互聯網上看到的內容,我想我將其全部放入.sh文件中並輸入如下內容:
.sh thing.sh
...執行它。
任何幫助表示贊賞。
for i in `find -maxdepth 1 -type d`; do
svnadmin create "/var/www/svn/$i"
svn import "/var/www/$i" "file:///var/www/svn/$i"
chmod -R 777 "var/www/svn/$i"
chown -R apache.apache "var/www/svn/$i"
done
當然,您的svn import
命令不正確,並且chmod
和chown
路徑缺少/
。 無論如何,但這只是命令的復制粘貼。
這對您有用嗎?
#!/bin/bash
for FILE in `ls`
do
if test -d $FILE
then
svnadmin create /var/www/svn/$FILE
svn import /var/www/$FILE file:///var/www/svn/$FILE
chmod -R 777 /var/www/svn/$FILE
chown -R apache.apache /var/www/svn/$FILE
fi
done
保存后,在腳本上執行chmod +x {name of file}
,使其可通過./{name of file}
sh {name of file}
./{name of file}
或sh {name of file}
。
如果您需要遞歸地從當前文件夾中找到所有子文件夾:
#!/bin/bash
for FILE in `find . -type d`
do
if test -d $FILE
then
svnadmin create /var/www/svn/$FILE
svn import /var/www/$FILE file:///var/www/svn/$FILE
chmod -R 777 /var/www/svn/$FILE
chown -R apache.apache /var/www/svn/$FILE
fi
done
如果您有任何疑問,請發表評論。
您可以使用以下命令創建腳本doIt.sh:
#!/bin/bash
svnadmin create /var/www/svn/$1
svn import /var/www/$1 file:///var/www/svn/$1
chmod -R 777 var/www/svn/$1
chown -R apache.apache var/www/svn/$1
然后,您可以進入要在其中找到所有子文件夾的文件夾並執行以下操作:
find . -type d | xargs -I {} ./doIt.sh {}
另外,您確定這條線:
svn import /var/www/<sub-folder> file:///var/www/svn/<sub-folder>
你不是說:
svn import /var/www/svn/<sub-folder> file:///var/www/svn/<sub-folder>
注意:路徑中缺少svn子文件夾
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.