উবুন্টু বাশ ফাংশন..সিন্ট্যাক্স ত্রুটি: "(" বা "}" অপ্রত্যাশিত)


9

কিছু বাশ ফাংশন চালানোর চেষ্টা করা হচ্ছে, তবে সিনট্যাক্স ত্রুটির মুখোমুখি হতে হবে: "(" অপ্রত্যাশিত I've

$ bash --version
GNU bash, version 4.3.46(1) release

#!/bin/bash
function hello () {
echo "Hello world"
}

কীভাবে স্ক্রিপ্ট চালাচ্ছেন?
মুড়ু

সম্পূর্ণ অনুমতি সহ। sh hello.sh
জেমস এ

1
ryanstutorials.net/bash-scriptting-tutorial/bash-functaions.php দেখুন
রিনজউইন্ড

আমি গত রাতে তার টিউটোরিয়ালগুলি পড়েছিলাম এবং আমি কোথায় ভুল করছি তা দেখতে তাদের অনুসরণ করেছিলাম ... তবে আমি এখনও একটি বাক্য গঠন ত্রুটি পেয়েছি যা খুব বিভ্রান্তিকর। উবুন্টু অন্য একটি শেল চালিয়ে গেলেও কি কমপক্ষে শিবাং ফাংশনটি সামঞ্জস্যপূর্ণ করা উচিত নয়?
জেমস এ

সমস্যা সমাধান. আমি hello sh hello.sh ---> ব্যবহার করছিলাম আমি ত্রুটি পেয়েছি। এটিকে সঠিকভাবে চালানোর জন্য আমার ./hello.sh ব্যবহার করা উচিত ছিল gu
জেমস এ 14

উত্তর:


18

আপনি যদি স্ক্রিপ্টটি দিয়ে চালাচ্ছেন তবে sh hello.shশিবাং লাইনে উল্লিখিত শেলটি উল্লিখিত একটি হবে না, তবে /bin/shব্যবহার করা হবে। ডিবিয়ান এবং উবুন্টুর ক্ষেত্রে ডিফল্টরূপে এটি হবে dash

সুতরাং আপনার স্ক্রিপ্টটি একটি দিয়ে সঠিকভাবে চালনার bashজন্য, নিম্নলিখিত দুটি ব্যবহার করুন।

/bin/bash hello.sh

অথবা

chmod +x hello.sh
./hello.sh

বিকল্প হিসাবে আপনি bashহিসাবে সেট করতে পারে /bin/sh

dpkg-reconfigure dash 

প্রতিক্রিয়া দেওয়ার জন্য আপনাকে ধন্যবাদ। কেন এটিকে ভোট দেওয়া হয়েছে তা সম্পর্কে
কোনও

2

প্রথম:

সিনট্যাক্স ত্রুটিটি () এর কারণে। ()) ফাইলটি থেকে এটি সরান:

#!/bin/bash
function hello {
echo "Hello world"
}

বা আপনার জন্য ফাইল সম্পাদনা করার জন্য আপনি কেবল নিম্নলিখিত কমান্ডটি চালাতে পারেন:

sed -i 's/() //g' hello.sh

আপনার এখন পছন্দসই ফলাফল সহ ফাইলটি চালানো উচিত।


বিকল্পভাবে :

আপনি আপনার ~/.bashrcফাইলে 2, 3 এবং 4 লাইন যুক্ত করতে পারেন ।

function hello () {
echo "Hello world"
}

মনে রাখবেন, আপনার ফাইল সম্পাদনা করতে ব্যবহার করবেন না !sudo~/.bashrc

আপনি ফাইলে লাইনগুলি যুক্ত করার পরে, আপনার .brcrc ফাইলটি পুনরায় আরম্ভ করার জন্য নিম্নলিখিত কমান্ডটি চালান বা "উত্স":

. ~/.bashrc

আপনার এখন কোমন্ড চালাতে সক্ষম হওয়া উচিত helloএবং "হ্যালো ওয়ার্ল্ড" টার্মিনালে মুদ্রণ করা উচিত।


এছাড়াও:

পরিবর্তে এটি বলার জন্য আপনি ফাইলটি সম্পাদনা করতে পারেন:

#!/bin/bash
echo "Hello world"

এবং ফাইলটির নাম দিন এবং ফাইলটি helloসংরক্ষণ করুন /usr/local/bin

এই সমস্ত কাজ করার পরে, নিম্নলিখিত কমান্ডটি চালিয়ে ফাইলটি এক্সিকিউটেবল করুন:

sudo chmod +x /usr/local/bin/hello

আপনার এখন কোমন্ড চালাতে সক্ষম হওয়া উচিত helloএবং "হ্যালো ওয়ার্ল্ড" টার্মিনালে মুদ্রণ করা উচিত।


অবশেষে:

তৃতীয় বিকল্পটি আপনার ~/.bashrcফাইলে নিম্নলিখিত লাইনটি যুক্ত করা হবে:

alias hello='echo "Hello world"'

তারপরে নিম্নলিখিত কমান্ডটি ব্যবহার করে আপনার .bashrc ফাইলটি উত্স করুন:

. ~/.bashrc 

আপনার প্রতিক্রিয়াগুলির জন্য আপনাকে ধন্যবাদ .... আমি কয়েকটি চেষ্টা করেছি এবং উত্তরটি যথেষ্ট সহজ পেয়েছি। $ SH hello.sh ... ./hello.sh fine.It কাজ ব্যবহার করার পরিবর্তে কুঁড়েঘর উপর লিখিত হয়েছে করা আবশ্যক ^^
জেমস একজন

কেন টমাসের উত্তরটি ভোট দেওয়া হয়েছিল কিন্তু? তিনি কি ঠিক ছিলেন না?
জেমস এ 14

2

উবুন্টুতে টার্মিনালগুলিতে GNU ব্যাশ হ'ল শেল default সিস্টেম বুট-এ স্ক্রিপ্টগুলি সঞ্চালিত হলে ড্যাশ ব্যবহৃত হয়, কারণ এটি ড্যাশ / বিন / শ হয়।

কাজ করবে না ->

$ sh hello.sh

কাজ করবে ->

$./hello.sh

সমস্যা সমাধান


1

আপনার স্ক্রিপ্ট অনুসারে:

#!/bin/bash
function hello () {
    echo "Hello world"
}

#call this function as follow:
hello   # Syntax Correct
hello() # Syntax Error
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.