उप-श्रेणियों में नेस्टेड उद्धरण


13

कहो मुझे सब्स्क्राइब आउटपुट को इनकैप्सुलेट करने के लिए कोट्स का उपयोग करना है:

DATA="$(cat file.hex | xxd -r)"

लेकिन मुझे इस तरह के सामान को घोंसला बनाने की आवश्यकता है:

DATA="$(cat file.hex | xxd -r | tr -d \"$(cat trim.txt)\")"

मैं एकल उद्धरण का उपयोग नहीं कर सकता क्योंकि वे उन चर का विस्तार नहीं करते जो उनके अंदर हैं। बचने वाले उद्धरण काम नहीं करते हैं क्योंकि उन्हें सिर्फ निष्क्रिय पाठ माना जाता है।

इससे मैं कैसे निपटूं?


आप उपयोग क्यों नहीं करते DATA="$(cat file.hex | xxd -r | tr -d "$(cat trim.txt)")"?
१२:२२ पर congonglm '

जवाबों:


19

आप के बाद से, एक subshell अंदर उद्धरण से बचने के लिए की जरूरत नहीं है वर्तमान खोल (यह से कुछ भी व्याख्या नहीं करता है उन्हें समझने नहीं है $(करने के लिए ), वास्तव में), और subshell किसी भी उद्धरण है कि ऊपर हैं के बारे में पता नहीं है।

अधिक जानकारी देखने के लिए, चर असाइनमेंट पर एक उप-भाग उद्धृत करना अनावश्यक है man bash


1
यह इस बात पर निर्भर करता है कि आप क्या करने की कोशिश कर रहे हैं, लेकिन यह आमतौर पर एक सर्वोत्तम अभ्यास है। देखें github.com/koalaman/shellcheck/wiki/Sc2086
LPCRoy

8

आप अंदर नेस्टेड उद्धरण से बचने की जरूरत नहीं है। वे ठीक से आश्चर्यचकित हो जाते हैं!

DATA="$(cat file.hex | xxd -r | tr -d "$(cat trim.txt)")"
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.