मैं निम्नलिखित समस्या से टकरा गई: फ़ाइल मार: स्ट्रिंग से पट्टी नई लाइन चरित्र (लाइन पढ़ें)
- पढ़ें लाइन: मैं एक लिनक्स बैश स्क्रिप्ट जो निम्नलिखित करता है लिख रहा हूँ पंक्ति के अंत से
\n
चरित्र अभी-अभी पढ़ा - आदेश वहाँ में
उदाहरण है कि निष्पादित करें: commands.txt
ls
ls -l
ls -ltra
ps as
बैश फ़ाइल के निष्पादन के पहली पंक्ति मिलना चाहिए, और यह निष्पादित, लेकिन जब \n
वर्तमान, खोल सिर्फ "नहीं मिला आदेश: ls" आउटपुट स्क्रिप्ट का वह भाग इस
read line
if [ -n "$line" ]; then #if not empty line
#myline=`echo -n $line | tr -d '\n'`
#myline=`echo -e $line | sed ':start /^.*$/N;s/\n//g; t start'`
myline=`echo -n $line | tr -d "\n"`
$myline #execute it
cat $fname | tail -n+2 > $fname.txt
mv $fname.txt $fname
fi
टिप्पणी की गई है कि आपके पास SO पूछने से पहले मैंने जो चीजें कोशिश की हैं। कोई समाधान? मैं इस घंटे से अधिक पिछले कुछ के लिए मेरे दिमाग स्मैश हूँ ...
आप बस अकेले '$ line' की कोशिश की? – knittl
बेशक मैंने किया था। लेकिन यह कहता है "कमांड नहीं मिला: ls " –
यह आवश्यक है कि: 'myline = "$ (echo -n" $ line ")" '(यदि आप चाहें तो' $() 'के बजाय बैकक्वॉट्स के साथ) – jnylen