शेल कमांड लाइन तर्क $1
(प्रथम), $n
(nth), या $*
(सभी तर्क) के माध्यम से सुलभ हैं , इसलिए आपकी स्क्रिप्ट को देखना चाहिए:
#!/bin/bash
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
अब नाम तर्क स्क्रिप्ट से सुलभ है $name
।
टाइमस्टैम्प प्राप्त करने के लिए date(1)
कमांड का उपयोग करें और इसे एक प्रारूप निर्दिष्ट करें ताकि यह आपके इच्छित प्रारूप का उत्पादन करे:
now=$(date +%Y%m%d%H%M%S)
अब $now
वर्तमान दिनांक और समय समाहित है।
इसलिए आप अपनी लॉग फ़ाइल बना सकते हैं:
logfile=/path/to/log/file/mylogfile.$now
echo "[$name]=[$now]" >> $logfile
आप अपने संदेशों को लॉग करने के लिए शेल फ़ंक्शन का उपयोग करना बेहतर समझते हैं क्योंकि इसका उपयोग करना आसान होगा:
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
ध्यान दें कि शेल फ़ंक्शन स्क्रिप्ट के माध्यम से उसी तरह से अपने स्वयं के तर्कों को एक्सेस करते हैं ( $1
जैसे आदि)
तो आरंभिक लिपि इस प्रकार दिखती है:
#!/bin/bash
function logit
{
now=$(date +%Y%m%d%H%M%S)
echo "$now: $*" >> $logfile
}
if [ $# -ne 1 ]; then
echo $0: usage: myscript name
exit 1
fi
name=$1
now=$(date +%Y%m%d%H%M%S)
logfile=/path/to/log/file/mylogfile.$now
logit name = $name
(ध्यान दें कि लॉग फ़ाइल आपके द्वारा निर्दिष्ट सटीक प्रारूप में नहीं है; यह प्रत्येक पंक्ति के प्रारंभ में टाइमस्टैम्प के साथ बेहतर है)।
[[ -n "$name" ]]
भाग क्या कर रहा है।