ટેસ્ટ આદેશનો ઉપયોગ લિનક્સના આદેશ વાક્યમાં એક ઘટકને બીજા સામે સરખાવવા માટે થઈ શકે છે પરંતુ શરતી વિધાનોના ભાગરૂપે બાસ શેલ સ્ક્રિપ્ટોમાં તે વધુ સામાન્ય રીતે ઉપયોગમાં લેવામાં આવે છે જે તર્ક અને પ્રોગ્રામ પ્રવાહને નિયંત્રિત કરે છે.
એક મૂળભૂત ઉદાહરણ
તમે ટર્મિનલ વિંડો ખોલીને આ આદેશોને અજમાવી શકો છો.
ટેસ્ટ 1 -ઇક 2 && ઇકો "હા" || ઇકો "ના"
ઉપરોક્ત આદેશ નીચે ભાંગી શકાય છે:
- કસોટી - આનો અર્થ એ કે તમે સરખામણી કરવા માટે છો
- 1 - પ્રથમ તત્વ જે તમે તુલના કરવા જઈ રહ્યા છો
- -ક (તમે કેવી રીતે તુલના કરી રહ્યા છો, આ કિસ્સામાં, તમે પરીક્ષણ કરી રહ્યા છો કે શું એક નંબર બીજાની બરાબર છે)
- 2 - આ ઘટક તમે ફરીથી પ્રથમ તત્વની તુલના કરી રહ્યા છો
- && - જો પરિણામ સાચી છે તો નીચેના નિવેદન ચલાવો
- "હા" ને ઇકો કરો - જો સરખામણી રીટર્ન રીટર્ન કરે તો ચલાવવાનો આદેશ
- || - પરિણામ ખોટું છે જો નીચેના નિવેદન ચલાવો
- "નો" ઇકો કરો - જો ચલાવવાની સરખામણી ખોટા હોય તો ચલાવવાનો આદેશ
સારાંશમાં, આદેશ 1 થી 2 ની સરખામણી કરી રહ્યા છે અને તેઓ "હા" સ્ટેટમેન્ટને ઇકો સાથે બંધબેસે છે, જે "હા" દર્શાવે છે અને જો તેઓ "નો" દર્શાવે છે કે ઇકો "નો" સ્ટેટમેંટ સાથે મેળ ખાતો નથી.
નંબર્સ સરખામણી
જો તમે એવા ઘટકોની સરખામણી કરી રહ્યા છો કે જે નંબરો તરીકે વિશ્લેષિત હોય તો તમે નીચેની સરખામણી ઓપરેટરોનો ઉપયોગ કરી શકો છો:
- -એક - વેલ્યુ 1 સમાન વેલ્યુ 2
- -ge - મૂલ્ય 1 મોટી અથવા બરાબર 2 મૂલ્ય
- -gt - મૂલ્ય 1 થી મૂલ્ય 1 વધારે છે
- -le - એ મૂલ્ય 1 થી ઓછું અથવા મૂલ્ય 2 બરાબર છે
- -lt - મૂલ્ય 2 કરતાં મૂલ્ય 1 ઓછું છે
- -એ - કિંમત 1 બરાબર નથી 2 મૂલ્ય
ઉદાહરણો:
ટેસ્ટ 1 -ઇક 2 && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "ના" દર્શાવે છે કારણ કે 1 બરાબર નથી 2)
ટેસ્ટ 1 -ge 2 અને& ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "ના" દર્શાવે છે કારણ કે 1 મોટી કે બરાબર નથી 2)
ટેસ્ટ 1-જીટી 2 && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "ના" દર્શાવે છે કારણ કે 1 2 કરતા વધારે નથી)
ટેસ્ટ 1 -લે 2 અને& ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "હા" દર્શાવે છે કારણ કે 1 2 કરતાં ઓછી અથવા બરાબર છે)
ટેસ્ટ 1-એલટી 2 && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "હા" દર્શાવે છે કારણ કે 1 2 કરતાં ઓછી અથવા બરાબર છે)
પરીક્ષા 1-2 2 && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "હા" દર્શાવે છે કારણ કે 1 બરાબર નથી 2)
ટેક્સ્ટની સરખામણી
જો તમે એવા ઘટકોની સરખામણી કરતા હો કે જે શબ્દમાળા તરીકે વિશ્લેષિત હોય તો તમે નીચેની સરખામણી ઓપરેટર્સનો ઉપયોગ કરી શકો છો:
- = - શબ્દમાળા 1 મેચ શબ્દમાળા 2 કરે છે
- ! = - શબ્દમાળા 2 માટે સ્ટ્રીંગ 1 અલગ છે
- -n - એ 0 કરતાં વધારે સ્ટ્રિંગ લંબાઈ છે
- -z - શબ્દમાળા લંબાઈ 0 છે
ઉદાહરણો:
પરીક્ષણ "સ્ટ્રિંગ 1" = "સ્ટ્રિંગ 2" && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "ના" દર્શાવે છે કારણ કે "string1" એ "string2" સમાન નથી)
પરીક્ષણ "સ્ટ્રિંગ 1"! = "સ્ટ્રિંગ 2" && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "હા" દર્શાવે છે કારણ કે "string1" એ "string2" સમાન નથી)
test -n "string1" && ઇકો "હા" || ઇકો "ના"
(સ્ક્રીન પર "હા" પ્રદર્શિત કરે છે કારણ કે "string1" પાસે શૂન્ય કરતા વધુ એક સ્ટ્રિંગ લંબાઈ છે)
test -z "string1" && echo "હા" || ઇકો "ના"
(સ્ક્રીન પર "ના" દર્શાવે છે કારણ કે "string1" પાસે શૂન્ય કરતા વધારે સ્ટ્રિંગ લંબાઈ છે)
ફાઈલો સરખામણી
જો તમે ફાઇલોની સરખામણી કરી રહ્યા હો તો તમે નીચેની સરખામણી ઓપરેટરોનો ઉપયોગ કરી શકો છો:
- -ef - ફાઈલોમાં સમાન ઉપકરણ અને આઇનોડ નંબરો છે (તે સમાન ફાઇલ છે)
- -nt - શું બીજી ફાઈલ બીજી ફાઇલ કરતા નવું છે?
- -ઓટ - બીજી ફાઇલ જૂની ફાઇલ કરતાં જૂની છે
- -બી - ફાઇલ અસ્તિત્વમાં છે અને બ્લોક ખાસ છે
- -c - ફાઇલ અસ્તિત્વમાં છે અને અક્ષર વિશેષ છે
- -d - ફાઇલ અસ્તિત્વમાં છે અને એક ડિરેક્ટરી છે
- -e - ફાઇલ અસ્તિત્વમાં છે
- -f - ફાઇલ અસ્તિત્વમાં છે અને એક નિયમિત ફાઇલ છે
- -g - ફાઇલ અસ્તિત્વમાં છે અને ચોક્કસ જૂથ નંબર ધરાવે છે
- -જી - ફાઇલ અસ્તિત્વમાં છે અને વપરાશકર્તાની જૂથ દ્વારા માલિક
- -હ - ફાઇલ અસ્તિત્વમાં છે અને તે સાંકેતિક કડી છે
- -k - ફાઇલ અસ્તિત્વમાં છે અને તેની સ્ટીકી બીટ સેટ છે
- -એલ - એ જ -હ
- -ઓ - ફાઇલ અસ્તિત્વમાં છે તમે માલિક છો
- -p - ફાઇલ અસ્તિત્વમાં છે અને નામ પાઇપ છે
- -r - ફાઇલ અસ્તિત્વમાં છે અને વાંચનીય છે
- -s - ફાઇલ અસ્તિત્વમાં છે અને શૂન્યથી મોટો કદ ધરાવે છે
- -એસ - ફાઇલ અસ્તિત્વમાં છે અને સોકેટ છે
- -t - ફાઇલ વર્ણનકર્તા ટર્મિનલ પર ખોલવામાં આવે છે
- -u - ફાઇલ અસ્તિત્વમાં છે અને સેટ-વપરાશકર્તા-આઇડી બીટ સેટ છે
- -w - ફાઇલ અસ્તિત્વમાં છે અને લખી શકાય તેવી છે
- -x - ફાઇલ અસ્તિત્વમાં છે અને એક્ઝેક્યુટેબલ છે
ઉદાહરણો:
test / path / to / file1 -n / path / to / file2 અને& ઇકો "હા"
(જો file1 file2 કરતાં નવું છે તો શબ્દ "હા" પ્રદર્શિત થશે)
test -e / path / to / file1 અને& ઇકો "હા"
(જો ફાઇલ 1 અસ્તિત્વમાં હોય તો "હા" શબ્દ દર્શાવવામાં આવશે)
test-o / path / to / file1 && ઇકો "હા"
(જો તમે ફાઇલ 1 ધરાવો છો તો શબ્દ "હા" પ્રદર્શિત થાય છે)
પરિભાષા
- ખાસ બ્લોક - ફાઇલ બ્લોક ઉપકરણ છે જેનો અર્થ એ છે કે ડેટા બાઇટ્સના બ્લોકોમાં વાંચવામાં આવે છે. આ સામાન્ય રીતે ડિવાઇસ ફાઇલ્સ છે જેમ કે હાર્ડ ડ્રાઈવો.
- કેરેક્ટર વિશિષ્ટ - ફાઇલને તાત્કાલિક કાર્યવાહી કરવામાં આવે છે જ્યારે તમે તેને લખો છો અને સામાન્ય રીતે સીરીયલ બંદર જેવા ઉપકરણ છે
બહુવિધ શરતો સરખામણી
આમ અત્યાર સુધી બધું એકબીજા સાથે એક વસ્તુની સરખામણી કરી રહ્યું છે પરંતુ જો તમે બે શરતોની સરખામણી કરવા માગો છો તો શું?
ઉદાહરણ તરીકે, જો કોઈ પ્રાણી પાસે 4 પગ છે અને "મૂ" તો તે કદાચ એક ગાય છે. ફક્ત 4 પગની તપાસ કરવાની ખાતરી આપતી નથી કે તમારી પાસે એક ગાય છે પરંતુ તે ચોક્કસપણે કરે છે તે અવાજને ચકાસી રહ્યો છે.
બંને પરિસ્થિતિઓને ચકાસવા માટે એકવાર નીચેના નિવેદનનો ઉપયોગ કરો:
કસોટી 4 -ઇક 4 -એક "મૂ" = "મૂ" && ઇકો "તે એક ગાય છે" || ઇકો "તે ગાય નથી"
કી ભાગ અહીં છે -a જે માટે વપરાય છે અને.
તે જ કસોટી કરવા માટે એક વધુ સારું અને વધુ સામાન્ય રીતે ઉપયોગમાં લેવાતું રીત છે અને તે નીચે મુજબ છે:
test 4 -eq 4 && test "moo" = "moo" && ઇકો "તે ગાય છે" || ઇકો "તે ગાય નથી"
બીજું કસોટી જે તમે કરી શકો છો તે બે નિવેદનોની તુલના કરી રહ્યા છે અને જો સાચું આઉટપુટ શબ્દમાળા છે ઉદાહરણ તરીકે, જો તમે "file1.txt" નામવાળી ફાઇલ અસ્તિત્વમાં છે અથવા "file1.doc" નામની ફાઇલ અસ્તિત્વમાં છે તે ચકાસવા માંગો છો તો તમે નીચેના આદેશનો ઉપયોગ કરી શકો છો.
test-e file1.txt -o -e file1.doc અને& ઇકો "ફાઇલ 1 અસ્તિત્વમાં છે" || ઇકો "ફાઈલ 1 અસ્તિત્વમાં નથી"
કી ભાગ અહીં છે -ઓ જેનો અર્થ છે કે
તે જ કસોટી કરવા માટે એક વધુ સારું અને વધુ સામાન્ય રીતે ઉપયોગમાં લેવાતું રીત છે અને તે નીચે મુજબ છે:
test -e file1.txt || test-e file1.doc અને& ઇકો "ફાઇલ 1 અસ્તિત્વમાં છે" || ઇકો "ફાઈલ 1 અસ્તિત્વમાં નથી"
ટેસ્ટ કીવર્ડ દૂર
સરખામણી કરવા માટે તમારે ખરેખર શબ્દ પરીક્ષણનો ઉપયોગ કરવાની જરૂર નથી. તમારે જે કરવું છે તે નીચે પ્રમાણે ચોરસ કૌંસમાં સ્ટેટમેન્ટને બંધ કરવું છે:
[-e file1.txt] && ઇકો "ફાઇલ 1 અસ્તિત્વમાં છે" || ઇકો "ફાઈલ 1 અસ્તિત્વમાં નથી"
આ [અને] મૂળભૂત રીતે પરીક્ષણ તરીકે જ અર્થ.
હવે તમે જાણો છો કે તમે બહુવિધ શરતોની સરખામણી નીચે પ્રમાણે કરી શકો છો:
[4-ઇક 4] && ["મૂ" = "મૂ"] && ઇકો "તે ગાય છે" || ઇકો "તે ગાય નથી"
[-e file1.txt] || [-e ફાઇલ 1.doc] && ઇકો "ફાઇલ 1 અસ્તિત્વમાં છે" || ઇકો "ફાઈલ 1 અસ્તિત્વમાં નથી"
સારાંશ
ટેસ્ટ આદેશ વધુ સ્ક્રિપ્ટ્સમાં ઉપયોગી છે કારણ કે તમે એક ચલની બીજી કિંમત અને કન્ટ્રોલ પ્રોગ્રામ ફ્લોની ચકાસણી કરી શકો છો. પ્રમાણભૂત આદેશ વાક્ય પર, તમે ફાઇલ અસ્તિત્વમાં છે કે નહીં તે ચકાસવા માટે તેનો ઉપયોગ કરી શકો છો