কমান্ড (ফাংশন) এর নাম কী যা কমান্ড ব্যর্থ হওয়ার পরে চলে?


-1

কমান্ড চালানোর সময়, যদি কমান্ড উপস্থিত না থাকে, তবে কমান্ডের ব্যর্থতা সম্পর্কিত কিছু তথ্য প্রদর্শিত হবে।

আমি সেই ব্যর্থ কমান্ডের তথ্যটি আমার স্ক্রিপ্টের ইনপুট হিসাবে নেওয়ার চেষ্টা করছি, যখনই কমান্ড ব্যর্থ হয় স্বয়ংক্রিয়ভাবে চালিত হয়।

যখনই কমান্ড ব্যর্থ হয় $?মান হবে 127। আমাকে এই ব্যর্থ ঘটনাটি ধরতে হবে এবং আমার আদেশগুলি সেখানে চালাতে হবে।


2
চালানোর জন্য scriptযদি commandব্যর্থ হয়, তাহলে ব্যবহার করুন: command || script
1024

আমরা কি একটি স্ফটিক বল তাকান এবং আপনার স্ক্রিপ্ট কি তা দেখার কথা? আমরা কোনও স্ক্রিপ্ট রাইটিং পরিষেবা নই। দয়া করে সম্পাদনা এবং প্রশ্ন আপনার স্ক্রিপ্টের যোগ করুন। আপনার যদি স্ক্রিপ্ট না থাকে তবে চেষ্টা করে একটি লিখুন এবং তারপরে আমরা আপনাকে এটি ঠিক করতে সহায়তা করতে পারি।
ডেভিডপস্টিল


1
(1) এটি কোনও চিঠিপত্র নয়। আমরা যদি আপনার সমস্যা সমাধানে কিছু অগ্রগতি করতে সহায়তা করে থাকি, তবে আপনার প্রশ্নটিকে দূরে সরিয়ে ফলো-আপ হিসাবে পুনরায় লিখবেন না rite একটি সীমিত পরিমাণ জন্য, আপনি পারে জুড়তে আপনার প্রশ্ন, পরিমার্জিত এটা (বদলে প্রতিস্থাপন)। আমি আপনার জন্য এটি করতে প্রথম কাটা করেছি। … (চালিয়ে যাওয়া)
জি-ম্যান

2
(চালিয়ে যাওয়া) ... (২) দুর্ভাগ্যক্রমে, আপনি এটিকে স্পষ্ট করে ব্যাখ্যা করতে কাছে আসেন নি। সম্ভবত আপনার প্রশ্নের প্রথম সংস্করণ আমার আগে কেউ বুঝতে পারেনি। (আমি আপনাকে ধরে নিচ্ছি যে আপনি কাজ করার চেষ্টা করছেন command_not_found_handleযে আমি কমপক্ষে এটি সঠিকভাবে ব্যাখ্যা করার কাছাকাছি এসেছি)) এখন পর্যন্ত, আপনি এখন কী বলছেন তা কেউ বুঝতে পারে না । অনুপস্থিত তথ্য হাইলাইট করে আমি আপনার প্রশ্নে জায়গা রেখেছি। আপনি যদি এগুলি পূরণ করতে পারেন তবে আপনি আরও কিছু সহায়তা পেতে পারেন। মন্তব্যে প্রতিক্রিয়া জানাতে দয়া করে; আপনার প্রশ্নটি আরও পরিষ্কার এবং আরও সম্পূর্ণ করতে সম্পাদনা করুন।
জি-ম্যান

উত্তর:


3

আমার /etc/bash.bashrc(উবুন্টু 14.04.4 এলটিএস) এ এই টুকরোটি রয়েছে :

# if the command-not-found package is installed, use it
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
    function command_not_found_handle {
            # check because c-n-f could've been removed in the meantime
                if [ -x /usr/lib/command-not-found ]; then
           /usr/lib/command-not-found -- "$1"
                   return $?
                elif [ -x /usr/share/command-not-found/command-not-found ];     then
           /usr/share/command-not-found/command-not-found -- "$1"
                   return $?
        else
           printf "%s: command not found\n" "$1" >&2
           return 127
        fi
    }
fi

দেখে মনে হচ্ছে আপনার command_not_found_handleফাংশনটি ওভাররাইট করা উচিত । আমি জানি না command-not-foundএটির জন্য প্যাকেজটির প্রয়োজন কি না ; আমি অনুমান করি না তবে আমি ভুল হতে পারি।

উদাহরণ:

function command_not_found_handle { echo BOOM! ; }

ফলাফল:

$ foo12345
BOOM!
$ echo "echo is valid command"
echo is valid command
$ agrgokdnlkdgnoajgldfnsdalf grhofhadljh
BOOM!
$ cat /etc/issue
Ubuntu 14.04.4 LTS \n \l

$ catt /etc/issue
BOOM!

প্রত্যাবর্তন করতে (দ্রুত এবং নোংরা):

# Assuming you haven't modified /etc/bash.bashrc
. /etc/bash.bashrc
# Quick and dirty, because if your ~/.bashrc or ~/.bash_profile //
# overwrites some settings from /etc/bash.bashrc //
# you need to source them again.
# Things may get complicated, I won't cover all the ifs here.
# Logout and login again for the clean start.

/etc/bash.bashrcসমস্ত ব্যবহারকারীর জন্য "কমান্ড পাওয়া যায়নি" আচরণ পরিবর্তন করতে সংশোধন করুন । আপনার নিজের নির্ধারণ command_not_found_handleমধ্যে ~/.bashrcএটি শুধুমাত্র আপনার জন্য কাজ করা। অথবা যে কোনও সময় আপনার হ্যাক সক্ষম এবং অক্ষম করতে যথাযথ ফাংশন সংজ্ঞা সহ দুটি ফাইল লিখুন। গুরুত্বপূর্ণ: ফাইলগুলি চালাবেন না, তাদের উত্সটি এই জাতীয় করুন:

. ~/.hack_enable
. ~/.hack_disable

যেখানে .hack_enableআপনার ফাংশনটিকে সংজ্ঞায়িত করে, .hack_disableমূলটিতে ফিরে যায় (আমার উত্তরের প্রথম কোডব্লক থেকে বা আপনার ক্ষেত্রে ঠিক কী অনুরূপ কিছু রয়েছে)।


ভাল ব্যাখ্যামূলক উত্তরের জন্য অনেক ধন্যবাদ, আমি যদি এটি পছন্দ করি তবে এটি কাজ করছে তবে আমার এলিয়াসগুলিও কমান্ড হিসাবে পাওয়া যায় না এমন জিনিস পাওয়া যায় না কীভাবে তাদের সাথে আলাদা আচরণ করা যায়?
অঙ্কন্না

এলিয়াস ব্যতীত এটি দুর্দান্ত কাজ করে। আপনি কীভাবে ডাকনাম এড়িয়ে যেতে আমাকে সহায়তা করতে পারেন? প্রশ্নটি আগে কিছুটা বিভ্রান্ত বলে মনে হওয়ায় আমি প্রশ্নটি সম্পাদনা করেছি। দ্রুত উত্তরের জন্য ধন্যবাদ
অঙ্কন্না

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