व्यवस्था की सूचना
ओएस: ओएस एक्स
बैश: GNU बैश, संस्करण 3.2.57 (1) -release (x86_64-apple-darwin16)
पृष्ठभूमि
मैं अपने सभी गिट / नोडज प्रोजेक्ट से निर्देशिकाओं और फाइलों के एक सेट को बाहर करने के लिए टाइम मशीन चाहता हूं। मेरी परियोजना निर्देशिकाएं हैं ~/code/private/और ~/code/public/इसलिए मैं इसे करने के लिए बैश लूपिंग का उपयोग करने की कोशिश कर रहा हूं tmutil।
मुद्दा
लघु संस्करण
यदि मेरे पास एक गणना स्ट्रिंग चर है k, तो मैं इसे फॉर-लूप से पहले या ठीक से गोलाकार कैसे बना सकता हूं:
i='~/code/public/*'
j='*.launch'
k=$i/$j # $k='~/code/public/*/*.launch'
for i in $k # I need $k to glob here
do
echo $i
done
नीचे दिए गए लंबे संस्करण में, आप देखेंगे k=$i/$j। इसलिए मैं लूप के लिए स्ट्रिंग को हार्डकोड नहीं कर सकता।
दीर्घ संस्करण
#!/bin/bash
exclude='
*.launch
.classpath
.sass-cache
Thumbs.db
bower_components
build
connect.lock
coverage
dist
e2e/*.js
e2e/*.map
libpeerconnection.log
node_modules
npm-debug.log
testem.log
tmp
typings
'
dirs='
~/code/private/*
~/code/public/*
'
for i in $dirs
do
for j in $exclude
do
k=$i/$j # It is correct up to this line
for l in $k # I need it glob here
do
echo $l
# Command I want to execute
# tmutil addexclusion $l
done
done
done
उत्पादन
उन्हें ग्लोब नहीं है। मुझे जो चाहिए वो नहीं।
~/code/private/*/*.launch
~/code/private/*/.DS_Store
~/code/private/*/.classpath
~/code/private/*/.sass-cache
~/code/private/*/.settings
~/code/private/*/Thumbs.db
~/code/private/*/bower_components
~/code/private/*/build
~/code/private/*/connect.lock
~/code/private/*/coverage
~/code/private/*/dist
~/code/private/*/e2e/*.js
~/code/private/*/e2e/*.map
~/code/private/*/libpeerconnection.log
~/code/private/*/node_modules
~/code/private/*/npm-debug.log
~/code/private/*/testem.log
~/code/private/*/tmp
~/code/private/*/typings
~/code/public/*/*.launch
~/code/public/*/.DS_Store
~/code/public/*/.classpath
~/code/public/*/.sass-cache
~/code/public/*/.settings
~/code/public/*/Thumbs.db
~/code/public/*/bower_components
~/code/public/*/build
~/code/public/*/connect.lock
~/code/public/*/coverage
~/code/public/*/dist
~/code/public/*/e2e/*.js
~/code/public/*/e2e/*.map
~/code/public/*/libpeerconnection.log
~/code/public/*/node_modules
~/code/public/*/npm-debug.log
~/code/public/*/testem.log
~/code/public/*/tmp
~/code/public/*/typings
kएक गणना स्ट्रिंग है, और मुझे लूप तक इस तरह से रहने की आवश्यकता है। कृपया मेरे लंबे संस्करण की जाँच करें।