ฉันกำลังทำงานกับสคริปต์อัตโนมัติที่ทำงานบนกล่อง Linux (Debian) สคริปต์เหล่านั้นเริ่มจากตัวจัดตารางเวลาและจัดการไฟล์ภายในไดเรกทอรีของตนเอง
ในตอนท้ายของสคริปต์ฉันต้องลบไฟล์ชั่วคราว
ขณะนี้ฉันชอบสิ่งนี้:
#check that some variables are not empty
if [[ -z $var1 || -z $var2 || -z $var3 ]]; then
echo "Some var is empty"
exit 1
fi
workingdir=$var1/$var2
#some checks on working directory
if [[ ! -d $workingdir ]]; then
echo "Directory error"
exit 1
fi
cd $workingdir
if [[ $(pwd) != $workingdir ]]; then
echo "Change directory error"
exit 1
fi
#...here goes the main part of the script
#and at the end, the "cleaning"
if [[ -d $workingdir/temp/$var3 ]]; then
find $workingdir/temp/$var3 -delete;
fi
คุณมีความคิดที่ฉันสามารถใช้เพื่อลดความเสี่ยงของการลบอะไรผิดหรือเปล่า?
ขอบคุณ.
ความนับถือ
ขอบคุณสำหรับลิงค์นี้ ฉันค้นหามาระยะหนึ่งแล้วและฉันไม่แน่ใจว่าจะอ้างอิงสองเท่าภายในเพื่อ / วนด้วย wildcard ได้อย่างไร ฉันควรใช้เครื่องหมายคำพูดคู่รอบ ๆ ตัวแปรเท่านั้นและปล่อยไวลด์การ์ดออกเช่นนี้หรือไม่?
—
lennelei
for f in "$workingdir"*; do...
ฉันไม่เห็นไวยากรณ์ดังกล่าวในคำถาม คุณไม่ควรถามคำถามใหม่ในความคิดเห็น อ้าง
—
Kamil Maciorowski
*
จะไม่ได้รับการขยายตัว ทำไมคุณไม่ลองecho "$workingdir"*
, echo "$workingdir*"
, echo "$workingdir"/*
และecho "$workingdir/*"
และดูตัวเอง?
ฉันขอโทษสำหรับคำถามฉันจะเปิดโพสต์ใหม่
—
lennelei
"double-quote $variables"
.