मैं उबंटू में एक बहुत ही सरल स्क्रिप्ट लिखने की कोशिश कर रहा हूं जो मुझे इसे या तो एक फ़ाइलनाम या निर्देशिका को पारित करने की अनुमति देगा, और जब यह एक निर्देशिका है, तो यह फ़ाइल और कुछ और होने पर कुछ विशिष्ट करने में सक्षम होगा। समस्या यह है कि जब निर्देशिका नाम, या शायद फ़ाइलें भी है, तो रिक्त स्थान या अन्य सुरक्षित अक्षर नाम में हैं।
यहाँ नीचे मेरा मूल कोड है, और कुछ परीक्षण।
#!/bin/bash
PASSED=$1
if [ -d "${PASSED}" ] ; then
echo "$PASSED is a directory";
else
if [ -f "${PASSED}" ]; then
echo "${PASSED} is a file";
else
echo "${PASSED} is not valid";
exit 1
fi
fi
और यहाँ उत्पादन है:
andy@server~ $ ./scripts/testmove.sh /home/andy/
/home/andy/ is a directory
andy@server~ $ ./scripts/testmove.sh /home/andy/blah.txt
/home/andy/blah.txt is a file
andy@server~ $ ./scripts/testmove.sh /home/andy/blah\ with\ a\ space.txt
/home/andy/blah with a space.txt is not valid
andy@server~ $ ./scripts/testmove.sh /home/andy\ with\ a\ space/
/home/andy with a space/ is not valid
वे सभी पथ मान्य हैं, और मौजूद हैं।
if
-else
बाश में निर्माण भी समर्थन करते हैंelif
। सिर्फ आपकी जानकारी के लिए।