簡體   English   中英

如何為以下內容編寫Shell(.sh)腳本

[英]How to write a shell (.sh) script for the following

我是linux / unix shell腳本的新手,我有幾十個項目想要為其設置Subversion文件夾(最終,我將進入Git大聲笑)。 如何編寫腳本來執行以下操作:

  1. 獲取文件夾中所有子文件夾的列表
  2. 對於每個子文件夾,使用它執行以下命令:
 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命令不正確,並且chmodchown路徑缺少/ 無論如何,但這只是命令的復制粘貼。

這對您有用嗎?

#!/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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM