কীভাবে বাশ স্ক্রিপ্ট চালানো যায়?


19

সুতরাং আমি আমার প্রথম বাশ স্ক্রিপ্ট লিখেছি:

#!/bin/bash
echo 'hello world!'
exit

আমি জানি এটি মারার সঠিক অবস্থান এবং এটি কার্যকর করা যায়:

$ which bash
/bin/bash
$ chmod +x myscript.sh

এখন আমি এটি কমান্ড লাইন থেকে চালাতে চাই, তবে আমি একটি ত্রুটি পেয়েছি:

$ myscript.sh
myscript.sh: command not found

সুতরাং পরিবর্তে আমি এটি চেষ্টা করি এবং এটি কার্যকর হয়:

$ bash myscript.sh
hello world!

আমার কি সর্বদা এটি চালানো দরকার? আমার মনে হচ্ছে আমি অন্যান্য স্ক্রিপ্টগুলি এর আগে না নিয়েই সম্পাদন করেছি bash। আমি এর আগে না রেখে কীভাবে myscript.sh চালাতে পারি bash?

আপডেট: বাশ স্ক্রিপ্টটি কেন এবং কীভাবে কার্যকর করা যায় তার একটি ভাল ব্যাখ্যা এখানে ।

উত্তর:


28

আপনাকে ফাইলটি কার্যকর করতে হবে। আপনি এটি দিয়ে করতে পারেন

chmod +x <filename>

আপনার স্ক্রিপ্টের নাম কোথায় এবং তারপরে আপনাকে ./স্থানীয় ডিরেক্টরিতে কোনও ফাইল চালানোর জন্য শেলটি নির্দেশ দেওয়ার সাথে এটি পুনরায় চাপতে হবে , যেমন:

./script.sh

আপনি কেবল সেই ফাইলগুলি চালনা করতে পারেন যা আপনার মধ্যে রয়েছে PATHবা আপনি যেগুলির জন্য কোনও পথ নির্দিষ্ট করেছেন। ./, স্থানীয় ডিরেক্টরিটি PATHডিফল্টরূপে হয় না কারণ কেউ এটিকে নিকৃষ্ট উদ্দেশ্যে ব্যবহার করতে পারে। lsকোনও ডিরেক্টরিতে ড্রপ বলে একটি স্ক্রিপ্ট কল্পনা করুন , আপনি সেই ডিরেক্টরিটির ভিতরে যান, চালান lsএবং সেই স্ক্রিপ্টটি কিছু খারাপ করে।

আপনি যখন এটিতে রয়েছেন তখন আপনি এটি ব্যবহার করে ব্যাশের পরিবর্তে শেল চালিয়ে আরও বেশি পোর্টেবল করতে চান:

#!/bin/sh

বা ব্যাশ চালিয়ে যতক্ষণ না এটি ইনস্টল থাকাকালীন কোথায় ইনস্টল করা থাকে:

#!/usr/bin/env bash

আমি ইতিমধ্যে chmod + x myscript.sh দিয়ে এটি করেছি। আমি কি এটা ভুল করেছি?
অ্যান্ড্রু

1
আপনি সম্ভবত নিখোঁজ রয়েছেন। / আমি এটি উত্তরে যুক্ত করেছি।
pupeno

1

ফার্নান্দেজের পরামর্শ ছাড়াও এটিকে একটি বিন্দুতে আগে রেখে দিন:

./myscript.sh

সুরক্ষার কারণে বর্তমান ডিরেক্টরিটি কখনই মৃত্যুদন্ডের পথে অন্তর্ভুক্ত হয় না।


1

ব্যাশ স্ক্রিপ্ট কার্যকর করার জন্য 3 টি উপায় রয়েছে। উদাহরণস্বরূপ myscript.sh এর স্ক্রিপ্ট হিসাবে আপনি চালাতে চান।

পদ্ধতি 1

উপ-প্রক্রিয়া হিসাবে স্ক্রিপ্টটি কার্যকর করুন, যা লেখার মালিক না হলে অনুমতিজনিত সমস্যাগুলি ট্রিগার করবে। আপনি chmod দ্বারা অনুমতি পরিবর্তন করতে পারেন।

mod chmod + x myscript.sh

/ ./myscript.sh

পদ্ধতি 2

বর্তমান ব্যবহারকারী হিসাবে স্ক্রিপ্টটি চালান। যদি ব্যাশ স্ক্রিপ্টটি ভালভাবে লেখা থাকে তবে এতে ত্রুটি থাকা উচিত নয়।

ash bash myscript.sh

পদ্ধতি 3

পদ্ধতি 2 এর মতো তবে একটি শর্ট কাট। নোট করুন যে আপনি বর্তমান অধিবেশনে ব্যাশ শেল ব্যবহার করছেন এমন ধারণার উপর ভিত্তি করে।

। myscript.sh

আশাকরি এটা সাহায্য করবে!:)

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