मैं एक उपनाम है जो जो एक निर्दिष्ट फ़ाइल CWD के वंशज निर्देशिका पर चला जाएगा (या पहले find
इस तरह के एक फ़ाइल नाम के पाया घटना) लिखने के लिए कोशिश कर रहा हूँ:बैश: उर्फ कारण समस्याओं में नेस्टेड बैकटिक
निम्न आदेश संयोजन वांछित परिणाम प्राप्त होता है:
cd `dirname \`find -name 'MyFile.txt' | sed -n 1p\``
हालांकि, मैं एक काम कर अन्य नाम बनाना सही तरीके से इस से बचने के लिए प्रतीत नहीं कर सकते हैं:
alias jump="cd \`dirname \\\`find -name '$1' | sed -n 1p\\\`\`"
,210
आउटपुट:
/*
dirname: missing operand
Try `dirname --help' for more information.
bash: cd: find: No such file or directory
मेरे तर्क यह है कि बैकटिक एक भी \
के साथ एक डबल उद्धृत स्ट्रिंग में से बचने की जरूरत है और मैं \\
ऐसा नहीं कर सकते एक स्ट्रिंग के भीतर एक भी बैकस्लैश में अनुवाद किया जाता है, ताकि दूसरे नेस्टेड बैकटिक की आवश्यकता है 1 + 2 = 3।
कोई सुझाव?
डॉलर की जानकारी के लिए हर किसी के लिए धन्यवाद। इस दृष्टिकोण का उपयोग कर किसी अन्य नाम बनाने का तरीका - विशेष धन्यवाद सही प्रश्न मैंने पूछा जवाब देने के लिए dogbane करने के लिए। – KomodoDave