2017-11-09 15 views
0

こんにちは、私はコピーするフォルダの数を求めて、変数numFoldersに格納してからforループを押してみようとしています。 numFolders変数にはエスケープ文字が必要だとは思いますが、わかりません。本当にありがとう!Bashスクリプトのforループで事前定義された変数をインクリメントする方法は?

#!/bin/bash 

echo "This script will copy an entire drive to a dropbox folder with the same drive name" 

read -p "Please enter drive name (case-sensitive):" driveName 


mkdir ~/Dropbox/$driveName 

# original above 

# create all folders 
# documents and settings 
# rsync --progress --recursive --ignore-existing 
echo "Now copying $driveName > Documents and Settings to Dropbox > $driveName" 
rsync --progress --recursive --ignore-existing "/Volumes/$driveName/Documents and Settings" ~/Dropbox/$driveName 

# Ask for how many folders 
read -p "How many folders do you want?" numFolders 

# Asks for name of folder and copies that until copied all the # of specified folders 
for (i=1; i<= $numFolders; i+=1) 
do 
     echo $i 
     read -p "Please enter name of folder you'd like to copy as well" folderName 
     echo "Now copying $folderName to Dropbox $driveName" 
     rsync --progress --recursive --ignore-existing "/Volumes/$driveName/$folderName" ~/Dropbox/$driveName 
done 
+0

パラメータの拡張を引用してください!定義によれば、答えに対するあなたのコメントに基づいて、どのフォルダとファイル名が期待されるのかわからない。スクリプトを非常に慎重に書く必要があります。 – chepner

答えて

1

これは無効な構文です:

for (i=1; i<= $numFolders; i+=1) 

それは次のようになります。

さらにに簡略化することができ
for ((i=1; i<= $numFolders; i+=1)) 

​​3210
+0

ありがとう、これは私のコードを正確に修正!単にラインを入れ替えるだけで、魅力のように機能します。私は人々のための古いハードドライブを回復し、クライアントが選別するための簡単に整理されたフォルダに普遍的にデータを抽出して並べ替えるスクリプトを作成することを学びます。これは始まりにすぎない。 – Kaiya

関連する問題