मैं एक बैश स्क्रिप्ट (script.sh) का उपयोग कर रहा हूं जो उदाहरण के लिए मानों को प्रतिस्थापित करके "रनटाइम" पर बनाए गए विभिन्न अजीब स्क्रिप्ट्स (script1.awk, script2.awk) का उपयोग करता है। मैं पहली बैश स्क्रिप्ट के भीतर उन्हें पूरी तरह एम्बेड करने के तरीकों की तलाश कर रहा हूं। मैं उन्हें एक फाइल करने के लिए लिख सकता हैएक शेल स्क्रिप्ट में अजीब एम्बेडिंग
awk '{
my script commands
' ${intputfile}
बेशक
, लेकिन पूरी बात करने के लिए नहीं है:
################################
# AWK scripts #
################################
read -d '' scriptVariable <<'EOF'
'
{my block commands;}
'
EOF
################################
# End of AWK Scripts #
################################
awk $scriptVariable ${inputfile} # This line obviously doesn't work
पारंपरिक के बजाय
: आदर्श रूप में, मैं एक फ़ाइल इस तरह लग रही है चाहते हैं । कोई सुझाव ?
संपादित करें: हालांकि कुत्ते के जवाब उत्तर ठीक काम करते हैं, अगली समस्या यह है कि < < 'यहां' टैग के साथ, न्यूलाइन वर्ण पढ़ नहीं पाए जाते हैं। मैं इसे तब से अलग नहीं कर सकता, अन्यथा, वह अजीब स्क्रिप्ट की व्याख्या करने की कोशिश कर रहा है भीतर $ साइन का सामना करना पड़ रहा है (और वहां हैं)। और बिना किसी न्यूलाइन के, मैं अजीब स्क्रिप्ट के भीतर कुछ भी टिप्पणी नहीं कर सकता (जब न्यूलाइन अक्षरों को हटाया जा रहा है तो आधे स्क्रिप्ट पर टिप्पणी किए बिना ...)। किसी को ?
<< 'EOF'
BEGIN{#Hello
print $1
}
EOF # Is read as BEGIN{#Hello print $1} by awk; ie BEGIN{
<< EOF
BEGIN{#Hello
print $1
}
EOF #Is read correctly by awk but Bash tried to express $1 and fails
क्या यह 'awk" $ script के साथ काम करता है "$ {inputfile}' – mouviciel
ऐसा लगता है कि आपको बस अपनी स्क्रिप्टिंग भाषा को बेहतर तरीके से अपग्रेड करने की आवश्यकता है - पर्ल या पायथन। यह आसान होगा और तेजी से काम करेगा। – mvp
पहले से ही कोशिश की गई है, यह स्रोत लाइन 1 संदर्भ में 0x\t >>> '<<< awk: स्रोत पंक्ति पर बाहर निकलना 18' –