লাইন 1: এইচটিএমএল + শেল স্ক্রিপ্টের সাথে অপ্রত্যাশিত টোকেন `newline 'এর কাছাকাছি সিনট্যাক্স ত্রুটি


0

আমি linuxcommand.org একটি দুর্দান্ত টিউটোরিয়াল সহ শেল শিখছি। নেভিগিটিং ডিরেক্টরি, ফাইল সম্পাদনা, ইত্যাদি নিয়ে শেখার এবং অনুশীলনের অনেক পরে, আমি শেল স্ক্রিপ্টগুলি লেখার জন্য চলে গেছি।

Linuxcommand.org এর প্রথম টিউটোরিয়ালগুলির মধ্যে একটি হল কিছু শেল স্ক্রিপ্টে এইচটিএমএল ব্যবহার করে কিছু সিস্টেম তথ্য ফেরত দিতে। আপনি এটা চেক আউট করতে পারেন এখানে । আমি বর্তমানে 'কমান্ড সাবস্টিটিউশন অ্যান্ড কনস্ট্যান্টস' বিভাগে আছি।

টিউটোরিয়ালে প্রথম জিনিসগুলির মধ্যে একটি হল ফাইলটি এইচটিএমএল থেকে স্ট্যান্ডার্ড আউটপুট পুনঃনির্দেশিত করে ব্যবহার করা যেতে পারে:

~ আমার $ ./sysinfo_page & gt; sysinfo_page.html

আমার স্ক্রিপ্টটি লিঙ্কটির মত ঠিক দেখাচ্ছে, তবে আমি যেভাবেই পোস্ট করবো:

(শুধুমাত্র পার্থক্য হল লিনাক্স env var $ HOSTNAME ব্যবহার করে, আমি ওএস এক্স এবং এটি $ LOGNAME)

#!/bin/bash

# sysinfo_page - Generate an HTML page based on system information

title="My System Information"
RIGHT_NOW=$(date +"%x %r %Z")
TIME_STAMP="Updated on $RIGHT_NOW by $USER"

cat <<- _EOF_
    <html>
    <head>
        <title>
        $title $LOGNAME
        </title>
    </head>

    <body>
        <h1>$title $LOGNAME</h1>
        <p>$TIME_STAMP</p>
    </body>
    </html>
_EOF_

যখন আমি কমান্ড লাইন টাইপ করি:

~ আমার $ ./sysinfo_page

এটি আমাকে শুধুমাত্র HTML এর সামগ্রী দেয়, তবে এটি ফর্ম্যাট করা হয় না এবং এখনও ট্যাগগুলি প্রদর্শন করে। আমি মনে করি যে এইচটিএমএল এক্সটেনশনে স্ট্যান্ডার্ড আউটপুট পুনঃনির্দেশিত করে ট্যাগগুলি ছাড়াই আমাকে বিন্যাসিত HTML পৃষ্ঠাটি দেবে তবে 755 এর সাথে chmod rwx অনুমতি দেওয়ার পরে আমি এটি লিখব না:

~ আমাকে $ ./sysinfo_page.html

এবং এই ত্রুটি পেতে:

./sysinfo_page.html: line 1: syntax error near unexpected token `newline'
./sysinfo_page.html: line 1: `<html>'

আমি যা পড়েছি তা বুঝতে পেরেছি & lt; করুন & gt; একটি স্থানধারক নির্দেশ করে, কিন্তু এটি HTML বাক্য গঠন ... এবং ঠিক কিভাবে এটি টিউটোরিয়ালে কাজ করে। আমি সম্ভবত একটি যোগ <!DOCTYPE> এটা ঠিক করতে হবে, কিন্তু না। আমার প্রশ্ন, আমি এখানে কি ভুল করছি? কিভাবে আমি সঠিকভাবে এইচটিএমএল পৃষ্ঠা প্রদর্শন করতে পারেন?

উত্তর:


3

HTML একটি স্ক্রিপ্ট নয়, এটি একটি মার্কআপ ভাষা। আপনি HTML রেন্ডার করার জন্য একটি ব্রাউজার প্রয়োজন। এটি দেখতে, সম্ভবত আপনি চান

open sysinfo_page.html

বাহ আমি যেমন একটি নোব। আমি জানি এইচটিএমএল একটি স্ক্রিপ্ট নয়, তবে আমি মনে করি যে এই ক্ষেত্রে এটি একটি শেল স্ক্রিপ্টে অন্তর্ভুক্ত ছিল, env vars অ্যাক্সেস করা হবে না। অনুমান আমি ভুল ছিল। ধন্যবাদ!
samrap

0

একক উদ্ধৃতিতে আপনার এইচটিএমএল মার্কআপটি মোড়ানো হলে এটি আপনাকে সরাসরি টার্মিনালে সরাসরি চালানোর অনুমতি দেয় তবে এটি আপনাকে মার্কআপ দেখায় এবং এটি HTML ব্যবহার করার উদ্দেশ্যকে হারাতে পারে।

গ্লেন দ্বারা বিবৃত হিসাবে খোলা ব্যবহার সম্ভবত আপনি চান কি।


হ্যাঁ আমি বলতে চাই যে আমি কমপক্ষে ফাইলটি দেখতে পারি এবং এটি একক উদ্ধৃতি ব্যবহার করে একই ফলাফল দেয়।
samrap
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.