برای انجام کاری لازم بود لیستی از سرورها ساخته شوند و سپس به صورت مرتب فایلها روی سرورها ارسال گردند.
برای اینکار از مفهوم زیر ایده گرفتم که اصل آنرا در اینجا میاورم
حالت اول، در این وضعیت هر خط در لیست به عنوان یک عضو در نظر گرفته می شود
اصطلاحا به آن with whitesapce گفته میشود.
listOfNames="RA
RB
R C
RD"
# To allow for other whitespace in the string:
# 1. add double quotes around the list variable, or
# 2. see the IFS note (under 'Side Notes')
for databaseName in "$listOfNames" # <-- Note: Added "" quotes.
do
echo "$databaseName" # (i.e. do action / processing of $databaseName here...)
done
# Outputs
# RA
# RB
# R C
# RD
without whitespace در اینحالت مشاهده میکنید که خط سوم لیست به صورت دو عضو سوا در نظر گرفته شده است.
listOfNames="RA
RB
R C
RD"
for databaseName in $listOfNames # Note: No quotes
do
echo "$databaseName" # (i.e. do action / processing of $databaseName here...)
done
# Outputs
# RA
# RB
# R
# C
# RD
دستور زیر فایلها و فولدر ها را در لینوکس نمایش میدهد
for d in *; do
echo $d
done
به صورت زیر تنها فولدرها نمایش داده می شوند
for d in */ ; do
echo "$d"
done
نکته اساسی: می توان به جای دستور echo سایر دستورات را به کار برد
بنا به دلایل مختلف، ممکنه که نخواهید دستوراتی را که در محیط متنی لینوکس تایپ میکنید در حافظه ذخیره شود،
راه حل برای حذف کل تاریخچه یا history وجود دارد،
من به راه حل ساده ای میپردازم
این راهکار برای محیط پوسته و یا shell به نام bash نوشته شده است
هنگامی که از طریق متنی با لینوکس در ارتباط هستید هر دستوری که تایپ میکنید در مسیر خاصی در حافظه موقت باقی میماند و در هنگامی که با دستور exit از محیط لینوکس خارج میشوید به فایل .bash_history الحاق میشود.
متغیری به نام HISTFILE مسیر فایل فوق را در خود نگه می دارد با دستور زیر، در هنگام خروج اطلاعات تاریخچه در جایی ذخیره نمیشود
unset HISTFILE