টার্মিনাল কমান্ডগুলির জন্য আমি কীভাবে স্ক্রিপ্ট ফাইল তৈরি করব?


114

উইন্ডোজে আমি সিএমডি (সাধারণত .cmdবা .batফাইল) এর কমান্ড সম্বলিত একটি ফাইল লিখতে পারি । আমি যখন এই ফাইলগুলিতে ক্লিক করি এটি খুলবে cmd.exeএবং তাদের চালিত করবে ফাইলটি ধারণ করে।

আমি কীভাবে উবুন্টুতে এটি করব?

আমি নিশ্চিত এটি একটি সদৃশ, তবে আমি আমার উত্তর খুঁজে পাই না।
এটি এই প্রশ্নের অনুরূপ, তবে তারা প্রশ্নের উত্তর দেয় না:

একটি ফাইলে ঘন ঘন ব্যবহৃত টার্মিনাল কমান্ড সংরক্ষণ করুন

উবুন্টুতে সিএমডি.এক্সই এমুলেটর .Cmd / .bat ফাইল চালানোর জন্য

উত্তর:


150

দুটি পদ্ধতি আছে।

প্রথমে সর্বাধিক সাধারণ একটি ফাইল লেখার বিষয়টি নিশ্চিত করুন যে প্রথম লাইনটি রয়েছে is

#!/bin/bash

তারপরে ফাইলটি সেভ করুন। পরবর্তী চিহ্নিত এটি ব্যবহার করে কার্যকরchmod +x file

তারপরে আপনি যখন ক্লিক করবেন (বা টার্মিনাল থেকে ফাইলটি চালাবেন) কমান্ডগুলি কার্যকর করা হবে। কনভেনশন অনুসারে এই ফাইলগুলির সাধারণত কোনও এক্সটেনশন থাকে না তবে আপনি এগুলি .shঅন্য কোনও উপায়ে শেষ করতে পারেন ।

কয়েকটি নোট:

  • যে কোনও (এবং আমার অর্থ কোনও) ফাইল লিনাক্সে কার্যকর করা যায় তবে প্রথম লাইনটি সেই প্রোগ্রামটির জন্য একটি পথ যা ফাইলটির ব্যাখ্যা করা উচিত। প্রচলিত উদাহরণ হল /bin/python, /bin/sh, /bin/dash, কিন্তু এমনকি বিজোড় বল জিনিষ মত কাজ/bin/mysql
  • বাশ একটি সম্পূর্ণ ভাষা। এটি উইন্ডোতে cmd.exe এর চেয়ে অনেক বেশি জটিল। এটিতে একটি শক্তিশালী প্রোগ্রামিং ল্যাঙ্গুয়েজ রয়েছে যা ফাংশন, লুপস, শর্তসাপেক্ষ, স্ট্রিং অপারেশন ইত্যাদি সমর্থন করে supports
  • আপনি যদি কোনও সমস্যা থেকে সরে যান তবে এই নথিগুলি সহায়তা করতে পারে help
  • আপনি যদি ফাইলটি এক্সিকিউটেবল করতে চান না তবে আপনি তা বাশের আর্গুমেন্ট হিসাবে এটি পাস করে চালাতে পারেন: bash file/to/run.sh

একটি সাধারণ বাশ উদাহরণ

#!/bin/bash  
echo "This is a shell script"  
ls -lah  
echo "I am done running ls"  
SOMEVAR='text stuff'  
echo "$SOMEVAR"

দ্বিতীয় পদ্ধতিটি হ'ল কমান্ডগুলি ব্যবহার করে রেকর্ড করা script। দৌড়ুন scriptতারপর শুধু স্টাফ করবেন। আপনি যখন স্টাফের ধরণটি সম্পন্ন করেন exitএবং স্ক্রিপ্ট আপনার জন্য সমস্ত "স্টাফ" দিয়ে একটি ফাইল তৈরি করে। এটি কম ব্যবহৃত হয় তবে ম্যাক্রোগুলির মতো জিনিস তৈরিতে বেশ ভাল কাজ করে। man scriptআরও তথ্যের জন্য.


আপনি এটিকে পরিবর্তন করতে /bin/bashচান /bin/sh, উশুন্টুর জন্য বাশ এমনকি ডিফল্ট নয়।
টিসি 1

@ টিসি 1 এটি ডিফল্টরূপে ইনস্টল করা হয়েছে, তাই এটি ডিফল্ট কিনা তা কিছু যায় আসে না।
কার্লোস ক্যাম্পার্ডারস

1
আমি এটি উল্লেখ করতে চাই /bin/dash(যা /bin/shসাধারণত প্রতিলিপিযুক্ত), বাশের চেয়ে অনেক দ্রুত (আমি প্রায় 15 গুণ দ্রুত মাপা)। যদি /bin/dash
কিছুটা

4
আপনার ফাইলের মতো একই ফোল্ডারে থাকলে ./file.sh
কোটায়ার

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

15

আপনি শেল স্ক্রিপ্ট ব্যবহার করে একটি ফাইল লিখতে চান? এখানে কয়েকটি উপায় রয়েছে:

touch file

এই পদ্ধতিটি কেবল একটি ফাইল তৈরি করবে, তবে ফাইলটি ইতিমধ্যে উপস্থিত থাকলে, আপনি সেই আদেশটি পরিবর্তনের তারিখটিকে সেই সময় পরিবর্তন করেন যা আপনি সেই আদেশটি ব্যবহার করেছিলেন।

echo "text" > file

যে পদ্ধতি বিষয়বস্তু মুছে ফেলা হয় fileকরতে text। আপনি যদি কোনও ফাইল সাফ করতে চান, আপনি কেবল এটি করতে পারেন:

echo "" > file

বলুন যে আপনি এটিতে একাধিক লাইন লিখতে চান এবং আপনি হাজার হাজার echoআদেশ ব্যবহার করতে চান না , আপনি এই আদেশটি ব্যবহার করবেন:

cat << EOF > file
test
test1
foo
bar
EOF

এটি আপনাকে একটি কমান্ডে একাধিক লাইন লিখতে সক্ষম করে। এর বিষয়বস্তুগুলি fileতখন এটি হবে:

test
test1
foo
bar

আপনি যদি কোনও ফাইলে সংযোজন করতে চান তবে প্রতিস্থাপন >করুন >>

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


সম্পাদনা : ওহ, আমি দেখতে পাচ্ছি, সুতরাং আপনি .shএক্সটেনশনটি ব্যবহার করে জিডিট ফাইলটি লিখবেন (alচ্ছিক, তবে এটি একটি ভাল ধারণা), এবং তারপরে একটি ফাইল ম্যানেজারে, ফাইলটিতে ডান ক্লিক করুন, বৈশিষ্ট্যগুলি>> অনুমতিগুলি নির্বাচন করুন এবং পরীক্ষা করুন Allow executing file as program। তারপরে আপনি এটিতে ডাবল-ক্লিক করতে পারেন এবং এটি চলবে :)। এছাড়াও, যদি আপনি টার্মিনালে এটি করতে চান তবে আপনি এই আদেশটি কার্যকর করে তুলতে চালাতে পারেন (এটি যদি আপনার নিজের না হয় তবে আপনি পূর্ববর্তী করতে চাইতে পারেন sudo):

chmod +x file

এবং চালানোর জন্য:

./file

আসলে আমি যা করতে চাই তা হল একটি ফাইল লিখুন, gedit বলুন, এতে টার্মিনাল কমান্ড রয়েছে। তারপরে আমি যখন এই ফাইলটিতে ডাবল ক্লিক করব তখন এটি টার্মিনালে এই কমান্ডগুলি চালিত করবে।
শেঠ

দুর্দান্ত উত্তর, বিবেচ্য আপডেট। কেবল একটি ফাইল তৈরি করতে, আমি সর্বদা সবেমাত্র ব্যবহার করেছিtouch filename
TryTryAgain

@TryTryAgain, হাঁ যে একটি সহজ পদ্ধতি, সম্ভবত চেয়ে দ্রুত echo "" > file। আমি যদি আমার উত্তরে সেই পদ্ধতিটি অন্তর্ভুক্ত করি তবে কি ঠিক আছে?
মিজিন

@ মিজিন একেবারে অন্তর্ভুক্ত করুন, নির্দ্বিধায়। ধন্যবাদ
ট্রাইট্রিআগেইন

টার্মিনালের যেখানে কোনও বিশ্বব্যাপী কমান্ডের মতো চালানোর জন্য কীভাবে এটি তৈরি করতে পারি?
ওমর

14

উইন্ডোজ ব্যাচ ফাইলগুলির সমতুল্য হ'ল শেল স্ক্রিপ্ট, এবং একটি দুর্দান্ত শুরু করার গাইড হ'ল বাশ স্ক্রিপ্টিং

বেশিরভাগ ক্ষেত্রে, আপনি যে কমান্ডগুলি কমান্ড লাইনে প্রবেশ করতে পারেন তা শেল স্ক্রিপ্টে স্থাপন করা যেতে পারে।

উইন্ডোজ ব্যাচের ফাইলগুলির চেয়ে পৃথক কয়েকটি জিনিস:

  • শেল নামে পরিচিত বিভিন্ন কমান্ড দোভাষী রয়েছে। ডিফল্ট হ'ল বাশ, তবে আপনি যদি আগ্রহী হন তবে zsh, ksh, ড্যাশ, পারল, পাইথন ইত্যাদি এর মতো আরও কিছু রয়েছে

  • শেল স্ক্রিপ্টটি চালানোর জন্য আপনাকে ফাইলটি এক্সিকিউটেবল করতে হবে, যা আপনি এটি দিয়ে করতে পারেন chmod +x <filename>

  • উবুন্টুতে, বর্তমান ডিরেক্টরিটি প্রোগ্রাম অনুসন্ধানের পথ নয়, সুতরাং আপনাকে চালানো দরকার ./<filename>, না<filename>

  • পরিবর্তনশীল নামগুলি হয় $<varname>, না%<varname>%

  • একটি ব্যাচ ফাইলের মতো শেল স্ক্রিপ্টের কমান্ডগুলি ডিফল্টরূপে মুদ্রিত হয় না।

  • ফাইল নামের এক্সটেনশন হতে পারে .shবা (আরও প্রচলিত) আপনার কোনও এক্সটেনশন ব্যবহার করার দরকার নেই। ফাইলটির প্রথম লাইনটি রাখুন#!/bin/bash , যা ফাইল চালানোর জন্য উবুন্টুকে কী প্রোগ্রাম ব্যবহার করতে হবে তা জানিয়ে দেয়।

  • মন্তব্য দিয়ে শুরু #, না rem

আশা করি এটি স্ক্রিপ্টিং মজাদার এবং সহায়তা করবে!

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