যে কোনও প্রোগ্রামে দরকারী শেল স্ক্রিপ্ট

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

আজ আমরা এমন কয়েকটি শেল স্ক্রিপ্ট প্রদর্শন করতে চলেছি যা বিকাশকারীদের জন্য খুব কার্যকর হতে পারে। যে কোনও শেলের বেশিরভাগ কাজ ইউনিক্সযদিও কারও কারও প্রয়োজন যে তারা নির্দিষ্টভাবে মৃত্যুদণ্ড কার্যকর করে সজোরে আঘাত.

স্ক্রিপ্ট চালানো থেকে অননুমোদিত ব্যবহারকারীদের বাধা দিন

কিছু স্ক্রিপ্ট প্রশাসনিক কাজ সম্পাদন করে তাই আমরা কেবল স্ক্রিপ্টটি চালানোর জন্য মূল ব্যবহারকারীকে চাই। সেক্ষেত্রে আমরা এরকম কিছু ব্যবহার করতে পারি:

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Este script debe ser ejecutado por el usuario root" 1>&2
exit 1
fi

স্ক্রিপ্ট কার্যকর করার অনুমতি কেবল একটি নির্দিষ্ট ব্যবহারকারীর কাছে

উপরের কোডের মতো, আমরা স্ক্রিপ্টটি চালানোর জন্য কেবল একটি নির্দিষ্ট ব্যবহারকারী চাই want আমরা এটি তাই করি:

#!/bin/bash
AUTHORIZED_USER="usuario_permitido"
if [ $USER != $AUTHORIZED_USER ]; then
echo "Este script debe ser ejecutado por el usuario $AUTHORIZED_USER" 1>&2
exit 1
fi

কোনও পরিষেবা / প্রক্রিয়া চলছে তা যাচাই করুন

যদি আমরা জানতে চাই যে কোনও পরিষেবা বা প্রোগ্রাম চলমান রয়েছে কিনা আমরা এই স্ক্রিপ্টটি ব্যবহার করতে পারি (এই ক্ষেত্রে এটি যাচাই করে তোলে এ্যাপাচি চলছে):

#!/bin/sh
SERVICE='httpd'
if ps ax | grep -v grep | grep $SERVICE > /dev/null
then
echo "El servicio $SERVICE esta ejecutandose"
else
echo "Chanfle! El servicio $SERVICE esta detenido"
fi

একটি লক ফাইল তৈরি করুন

কখনও কখনও আমাদের অবশ্যই তা নিশ্চিত করতে হবে যে স্ক্রিপ্টটি একই সাথে দু'বার বা তার বেশি সময় চলবে না। এর জন্য আমরা লক ফাইলগুলি ব্যবহার করতে পারি। এটি একটি স্ক্রিপ্টের একটি সাধারণ সংস্করণ যা আমাদের এটি করতে দেয়:

#!/bin/bash
lockfile=/var/lock/loquesea.lock
if [ ! -e $lockfile ]; then
touch $lockfile
echo "hago muchas cosas importantes aqui"
rm $lockfile
else
echo "ya hay otro proceso corriendo"
fi

এই ক্ষেত্রে, এটি ফাইল যাচাই করা হয় যাই হোক না কেন উপস্থিত। যদি এটি বিদ্যমান থাকে তবে স্ক্রিপ্টটি এর কাজগুলি সম্পাদন করে না। যদি এটি বিদ্যমান না থাকে তবে এটি ফাইল তৈরি করে, চালানোর জন্য প্রয়োজনীয় কাজগুলি পরিচালনা করে এবং এটি সরিয়ে দেয়। তবে, এটি পুরোপুরি নির্ভরযোগ্য নয়। আমাদের স্ক্রিপ্টটি চলমান অবস্থায় হঠাৎ বন্ধ হয়ে গেলে কী হবে?

সেক্ষেত্রে লক ফাইলটি মোছা হবে না এবং তাই এটি আমাদের আবার স্ক্রিপ্টটি চালানোর অনুমতি দেয় না। এই কেসগুলি কভার করার জন্য, আমরা ট্র্যাপ কমান্ডটি ব্যবহার করতে পারি যা আমাদের স্ক্রিপ্টটি অপ্রত্যাশিতভাবে শেষ হয় যদি আমাদের আদেশগুলি কার্যকর করতে দেয়। এটি একটি আরও উন্নত সংস্করণ যা স্ক্রিপ্টের পিআইডি সংরক্ষণ করে যা এটি লক ফাইলের মধ্যে চালিত করে:

#!/bin/bash
lockfile=/var/lock/loquesea.lock
if ( set -o noclobber; echo "$$" > "$lockfile") 2> /dev/null;
then
trap 'rm -f "$lockfile"; exit $?' INT TERM EXIT
echo "hago muchas cosas aqui tranquilamente"
rm -f "$lockfile"
trap - INT TERM EXIT
else
echo "Ya hay otro proceso de este script ejecutandose"
echo "corriendo con el PID: $(cat $lockfile)"
fi

কমান্ডটি আরও ভালভাবে বুঝতে পারি ফাঁদ। এর বাক্য গঠনটি মূলত এটি: ট্র্যাপ কমান্ড সংকেত [সংকেত…]; যেখানে সংকেত হ'ল সমাপ্তি সংকেত যা আপনি ধরতে চান। আপনি যদি উপলভ্য সিগন্যালের একটি তালিকা দেখতে চান তবে আপনি কিল-ল কমান্ড চালাতে পারেন। পূর্ববর্তী ক্ষেত্রে, আইএনটি সংকেত ব্যবহৃত হয়েছিল (একটি Ctrl + সি দ্বারা উত্পাদিত সমাপ্তি ক্যাপচার), শর্ত (হত্যার আদেশ দ্বারা উত্পাদনের সমাপ্তি) এবং প্রস্থান করুন (কোনও স্ক্রিপ্টের সাধারণ সমাপ্তি, হয় চালানোর জন্য আর কোনও লাইন নেই বলেই বা এটি প্রস্থান কমান্ড জুড়ে আসে).

বিকল্প মেনু

একটি মেনু তৈরি করতে যেখানে আমরা ব্যবহারকারীকে কয়েকটি বিকল্পের সিলেক্ট করার অনুমতি দিই আমরা নিম্নলিখিত স্কিমটি ব্যবহার করতে পারি:

#!/bin/bash
clear
while :
do
echo " Escoja una opcion "
echo "1. quien soy?"
echo "2. cuanto espacio tengo"
echo "3. que es esto?"
echo "4. Salir"
echo -n "Seleccione una opcion [1 - 4]"
read opcion
case $opcion in
1) echo "este eres:";
whoami;;
2) echo "tienes esto";
df;;
3) uname -r;;
4) echo "chao";
exit 1;;
*) echo "$opc es una opcion invalida. Es tan dificil?";
echo "Presiona una tecla para continuar...";
read foo;;
esac
done

স্ক্রিপ্ট চালানোর আগে নিশ্চিতকরণের জন্য জিজ্ঞাসা করুন

কখনও কখনও এটি ব্যবহারকারীর ব্যাচের একটি ব্যাচের কার্যকারিতা নিশ্চিত করার পক্ষে দরকারী, এটি হ'ল সাধারণ বার্তা যা ব্যবহারকারীকে হ্যাঁ বা না লিখতে বলে। আমরা এটি এইভাবে করতে পারি:

#!/bin/bash
while true; do
echo
read -p "esta seguro de hacer lo que sea que vaya a hacer " yn
case $yn in
yes ) break;;
no ) exit;;
* ) echo "por favor responda yes o no";;
esac
done
echo "si se ejecuta esto es que aceptaste"

নিবন্ধের শেষ। সহজভাবে মহান 

সম্পাদকীয়: আপনাকে স্পেস এবং ট্যাবগুলি সম্পর্কে সতর্কতা অবলম্বন করতে হবে, যা কিছু কারণে coming বেরিয়ে আসছে না ¬¬


Google-এ পছন্দের উৎস হিসেবে যোগ করুন