কেন 0 ডলার সেট করা হচ্ছে?


8

প্রথম লগইন প্রক্রিয়া নামটি সেট করা আছে বলে মনে হয় -bash, তবে আমি যদি সাবস্কেল করি তবে তা হয়ে যায় bash। উদাহরণ স্বরূপ:

root@nowere:~# echo $0
-bash
root@nowere:~# bash
root@nowere:~# echo $0
bash

-bash কিছু স্ক্রিপ্টগুলি ব্যর্থ করে দিচ্ছে, যেমন . /usr/share/debconf/confmodule

exec /usr/share/debconf/frontend -bash
Can't exec "-bash": No such file or directory at /usr/share/perl/5.14/IPC/Open3.pm line 186.
open2: exec of -bash failed at /usr/share/perl5/Debconf/ConfModule.pm line 59

কারও কারও জানা আছে কেন $0সেট করা হয়েছে -bash?


1
@ রাদুরানডানু বিড়ালের অপ্রয়োজনীয় ব্যবহারের দাগ!
gniourf_gniourf

উত্তর:


5

echo $0কমান্ডের আউটপুট -bashহলে এর অর্থ bashলগইন শেল হিসাবে ব্যবহৃত হয়েছিল। man bash126 লাইনে কোথাও বলেছেন:

A  login shell is one whose first character of argument zero is a -, or 
one started with the --login option.

এখানে আরও দেখুন: লগইন শেল এবং নন-লগইন শেলের মধ্যে পার্থক্য

সুতরাং আপনার শেলটি এখনও রয়েছে /bin/bash(এটি echo $SHELLকমান্ড দিয়ে পরীক্ষা করা যেতে পারে ) এবং আমি আপনাকে সেই আদেশটি ব্যবহার করার পরামর্শ দিচ্ছি যা আপনাকে স্বাভাবিকভাবে ত্রুটি দেয়:

exec /usr/share/debconf/frontend bash

ধন্যবাদ, দেখা যাচ্ছে যে লগইন সঠিকভাবে লগইন শেল প্রক্রিয়া নামের সাথে "-" যুক্ত করছে। যে আমার প্রশ্নের উত্তর।
জেমস শিমার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.