मैं अतिरिक्त कोड जोड़ने के बिना ऐसा करने की कोशिश कर रहा हूं, जैसे कि लूप के लिए दूसरा। मैं एक सरणी को एक स्ट्रिंग की तुलना करने का सकारात्मक तर्क बना सकता हूं। हालांकि मैं नकारात्मक तर्क और केवल प्रिंट मानों को सरणी में नहीं चाहता हूं, अनिवार्य रूप से यह सिस्टम खातों को फ़िल्टर करना है।बैश में आप कैसे देखते हैं कि कोई स्ट्रिंग सरणी में नहीं है या नहीं?
मेरे निर्देशिका इस तरह उसमें फ़ाइलें हैं:
admin.user.xml
news-lo.user.xml
system.user.xml
campus-lo.user.xml
welcome-lo.user.xml
इस कोड मैं अगर है कि फाइल निर्देशिका में है एक सकारात्मक मैच करने के लिए प्रयोग किया जाता है:
#!/bin/bash
accounts=(guest admin power_user developer analyst system)
for file in user/*; do
temp=${file%.user.xml}
account=${temp#user/}
if [[ ${accounts[*]} =~ "$account" ]]
then
echo "worked $account";
fi
done
में कोई मदद सही दिशा की सराहना की जाएगी, धन्यवाद।
शायद आप 'उपयोगकर्ता/* में फ़ाइल के लिए' थे; do' (ध्यान दें; ';') – devnull
धन्यवाद, किसी ने मेरे प्रश्न पर एक संपादन किया और गलती से कैरिज रिटर्न हटा दिया। – blamonet