பாஷ் ஷெல் ஸ்கிரிப்ட்டில் ஒரு கோப்பு அல்லது கோப்பகம் உள்ளதா என்பதை எவ்வாறு சரிபார்க்கலாம்

பாஷ் ஸ்கிரிப்ட்டில் இருந்து கோப்பு அல்லது கோப்பகம் உள்ளதா எனச் சரிபார்க்கிறது

லினக்ஸில் தொடர்ந்து செயல்படுத்தப்படும் கட்டளைகளை தானியக்கமாக்குவதற்கு பாஷ் பயன்படுத்தப்படுகிறது. கோப்புகள்/கோப்பகங்களில் செயல்படும் கட்டளைகள் அடிக்கடி பயன்படுத்தப்படுகின்றன, பொதுவாக, அத்தகைய கட்டளையை இயக்கும் முன், குறிப்பிட்ட கோப்பு அல்லது அடைவு உள்ளதா என்பதைச் சரிபார்க்க வேண்டும். இந்த சோதனையை எப்படி செய்வது என்று பார்ப்போம்.

தொடரியல் மற்றும் பயன்பாடு

கோப்புகள்

கோப்பு இருக்கிறதா என்று பார்க்க, பின்வரும் தொடரியல் பயன்படுத்தவும்:

[ -f ]

பாவனை [ -f ] 0 ஐ வழங்குகிறது, அதாவது வெற்றி என்றால் உள்ளது, அது இல்லை என்றால் அது பூஜ்ஜியமற்ற நிலையை வழங்கும். பொதுவாக, இது ஒரு நிபந்தனையாக பயன்படுத்தப்படுகிறது என்றால் அறிக்கை.

[ -f ] என்றால் fi

திரும்பிய மதிப்பை நிராகரிக்க, வெறுமனே முன் -எஃப் ஒரு மறுப்பு ஆபரேட்டருடன் (!).

என்றால் [! -f ] பிறகு fi

இந்த வழக்கில், கோப்பு இருந்தால் நிபந்தனை பூர்த்தி செய்யப்படும் இல்லை, திரும்பிய பூஜ்ஜியமற்ற நிலை (தவறு) நிராகரிக்கப்பட்டு 0 (உண்மை) எனக் கருதப்படும்.

சரிபார்க்கப்பட வேண்டிய கோப்பு தற்போதைய கோப்பகத்தில் இல்லை மற்றும் வேறு ஏதேனும் கோப்பகத்தில் இருந்தால், கோப்பின் முழுப் பாதையும் கோப்பின் பெயரை மட்டும் குறிப்பிடாமல் குறிப்பிட வேண்டும்.

அடைவுகள்

கோப்புகளைச் சரிபார்ப்பதற்குப் பயன்படுத்தப்படும் ஒத்த தொடரியல் கோப்பகங்களைச் சரிபார்க்கப் பயன்படுத்தப்படுகிறது.

[ -d ]

கோப்புகளுக்கான அறிக்கையைப் போலவே, இந்த அறிக்கை 0 ஐ வழங்குகிறது, அதாவது, அடைவு என்றால் வெற்றி உள்ளது, மற்றும் பூஜ்ஜியம் அல்லாதது, அதாவது தோல்வி நிலை அது இல்லாவிட்டால் திரும்பும். இதுவும் பொதுவாகப் பயன்படுத்தப்படுகிறது என்றால் அறிக்கை நிபந்தனை.

[ -d ] என்றால் fi

திரும்பிய நிலையை நிராகரிக்க, இதற்கு முன் -d ஒரு மறுப்பு ஆபரேட்டருடன் (!).

என்றால் [! -d ] பிறகு fi

கோப்பகம் இல்லாவிட்டால் நிபந்தனை (நிலை 0) பூர்த்தி செய்யும், மேலும் கோப்பகம் இருந்தால் தோல்வியடையும் (நிலை பூஜ்ஜியம் அல்ல).

கோப்புகளுக்கு முன்பு குறிப்பிட்டது போல், சரிபார்க்கப்பட வேண்டிய கோப்பகம் வேறொரு இடத்தில் உள்ளது மற்றும் தற்போதைய கோப்பகத்தில் இல்லை என்றால், அடைவுப் பெயருக்குப் பதிலாக முழு அடைவுப் பாதையையும் உள்ளிட வேண்டும்.

💡 அடைப்புக்குறி தொடரியல் ( [...] ) இங்கே பயன்படுத்தப்படுவது உண்மையில் லினக்ஸ் கட்டளை எனப்படும் சோதனை. விருப்பங்கள் -எஃப் மற்றும் -d இந்த கட்டளையின் அம்சங்கள். மேலும் தகவலுக்கு, சோதனையின் கையேடு பக்கத்தைப் பார்க்கவும் ( மனிதன் சோதனை ).

பாஷ் ஸ்கிரிப்ட் மூலம் சரிபார்க்கவும்

மேலே உள்ள எடுத்துக்காட்டுகளில், நாம் தொடரியல்களை நேரடியாக முனையத்தில் பயன்படுத்தியுள்ளோம். ஷெல் ஒரு லூப் அல்லது நிபந்தனை அறிக்கையை சந்திக்கும் போதெல்லாம் (என்றால் எங்கள் விஷயத்தில்), இது அறிவுறுத்தலைத் தொடர்கிறது மற்றும் பயனர் தொகுதியைத் தொடர நுழைய அனுமதிக்கிறது.

அதே தொடரியல் பாஷ் ஸ்கிரிப்ட்டின் உள்ளே இருந்து பயன்படுத்தப்படலாம்.

தி #!/பின்/பாஷ் தொடக்கத்தில் கோப்பு செயல்படுத்தப்படும் போது பயன்படுத்தப்படும் மொழிபெயர்ப்பாளரைக் குறிப்பிடுகிறது. பாஷ் என்பது இப்போதெல்லாம் பொதுவாகப் பயன்படுத்தப்படும் ஷெல் என்றாலும், சில பயனர்கள் ஷெல்களை விரும்புகிறார்கள் zsh, இந்தக் கோப்பின் தொடக்கத்தில் பாஷுக்குப் பதிலாக இது குறிப்பிடப்பட வேண்டும்.

இயக்க அனுமதிகளை வழங்க இந்த கோப்பிற்கு, இயக்கவும்:

chmod +x test.sh

இறுதியாக, கோப்பை இயக்க, ஓடு:

./test.sh