আমি যদি কমান্ড চালাই।
sudo some-command && some-other-command
দ্বিতীয় কমান্ডটিও sudo
প্রবলতার সাথে চালানো হচ্ছে ?
আমি যদি কমান্ড চালাই।
sudo some-command && some-other-command
দ্বিতীয় কমান্ডটিও sudo
প্রবলতার সাথে চালানো হচ্ছে ?
উত্তর:
টিএল; ডিআর: না
প্রথম কমান্ডটি হ'ল
sudo some-command
দ্বিতীয় আদেশটি হল
some-other-command
কমান্ডটি sudo
নিম্নলিখিত কমান্ডটি গ্রহণ করে এবং এটি উন্নত সুবিধাগুলি সহ কার্যকর করে। &&
যাইহোক, কমান্ড অন্তর্গত নয় এবং প্রথম কমান্ডটি নির্বাহ করার আগে, শেল দ্বারা ব্যাখ্যা করা হয়। এটি বাশকে প্রথমে প্রথম কমান্ড কার্যকর করতে এবং দ্বিতীয়টি সাফল্যের সাথে বলে।
সুতরাং এই sudo
সম্পর্কে জানেন না && some-other command
। যখন এলিভেটেড প্রক্রিয়াটি সমাপ্ত হয়, বাশ তার রিটার্ন মান গ্রহণ করে এবং তারপরে অন্য কমান্ডটি কার্যকর করে, যা আবার প্রথমটির সাথে জানে না।
এটি সহজেই প্রদর্শিত হতে পারে:
$ sudo whoami && whoami
root
username
আপনি যা চান তা পৌঁছানোর জন্য, আপনি একটি উন্নত বাশ শুরু করতে পারেন এবং এটি উভয় আদেশকে কার্যকর করতে দিন:
$ sudo bash -c 'whoami && whoami'
root
root
সুতরাং এখন, দুটি কমান্ডই মূল হিসাবে কার্যকর করা হবে, যেমন উপরে বর্ণিত পুরো প্রক্রিয়াটি একটি উন্নত প্রক্রিয়াতে কার্যকর করা হয়, অর্থাৎ বাশ সেশনটি এই কমান্ড দিয়ে শুরু হয়েছিল, যা অবিলম্বে সমাপ্তির পরে উপস্থিত হয়। তবুও, উভয়ই whoami
একে অপরের অস্তিত্ব সম্পর্কে জানেন না।
এটি কোনও উদ্দেশ্য অনুসারে নয় তবে এই প্রদর্শনের জন্য সহজ উপায়টি সহজভাবে করা
sudo some-command && sudo some-other-command
না। কিছু উদাহরণ যা এগুলি করে তা হল:
sudo some-command && sudo some-other-command
sudo sh -c "some-command && some-other-command"
বা আপনি যদি নীড়ের আদেশ চান তবে আপনি এটি করতে পারেন:
sudo bash <<"EOF"
some-command
some-other-command
sudo bash <<"EOF2"
some-command2
some-other-command2
EOF2
EOF
$ sudo -s -- whoami && whoami
দেয়root
username
sudo -s -- "whoami && whoami"
কমান্ডটি পাওয়া যায়নি বলে মনে হচ্ছে কম্যান্ড কম্যান্ডের মতোই "whoami && whoami"
। কীভাবে এই নির্মাণটি && এর সাথে ব্যবহার করবেন? আমি দেখতে পাচ্ছি যে এর sudo -s cd ..
বিপরীতে কোনও ত্রুটি দেয় না sudo cd ..
।
sudo bash <<"EOF"
! ধন্যবাদ! :-)
না, হয় আপনি দুবার sudo লিখতে হবে, বা এর মতো কিছু
sudo bash -c 'foo && bar'
&&
এর অর্থ হ'ল ডান পার্শ্বযুক্ত (দ্বিতীয়) কমান্ড কেবল তখনই চলবে যদি ন্যস্ত সাইড (প্রথম) কমান্ড সফল হয় অর্থাৎ প্রস্থান কোড $?
হয় 0
।
দুটি কমান্ড একে অপরের থেকে পৃথক এবং তাদের নিজস্ব পরিবেশে চালিত হবে যাতে দ্বিতীয় কমান্ডটি sudo
সুবিধাপ্রাপ্ত হয়ে চলবে না ।
এটি আপনাকে পরিষ্কার করে দেবে:
$ sudo whoami && whoami
root
foobar
না, এবং নিম্নলিখিতগুলি একবারে খুব সাধারণভাবে ম্যাক্রোড হয়।
sudo reboot && exit
প্রত্যেকের সম্পর্কে কমপক্ষে একবার এটি করা উচিত ছিল
sudo apt-get update && sudo apt-get upgrade
সুতরাং এটি একটি দুর্দান্ত "মিকি মাউস" সাক্ষাত্কারের প্রশ্ন।
এটি এত সহজে পরীক্ষিত হয় যে স্ট্যাট প্যাডিং অনুশীলনের জন্য প্রশ্নটি সন্দেহ হতে পারে।
কমান্ড লাইনে আপনি যখন দেখবেন
$ command one && command two
সাধারণ অভিপ্রায়টি হ'ল কমান্ডটি কার্যকর করা হয় যা কেবল প্রথম কমান্ড সফল হলেই && অনুসরণ করে।
একেবারে না, এটি ঠিক পরপর দু'টি কমান্ড লেখার মতোই, এটি && কোনও আদেশকে কোনও অতিরিক্ত সুযোগ দেয় না। এটি কেবল একটি পৃথক ।
এটি প্রমাণ করার জন্য আসুন আমরা একটি উদাহরণ নিই।
touch fileA fileB
আমি দুটি ফাইল ফাইলএ এবং ফাইলবি তৈরি করেছি। এখন আমি কমান্ড চালাব
sudo chown test:test fileA && chown test:test fileB
আমি এই ফাইলগুলির ব্যবহারকারী এবং গোষ্ঠী মালিককে ব্যবহারকারী এবং গোষ্ঠীর নাম পরীক্ষায় পরিবর্তন করছি। এখন প্রথম কমান্ড চালানো উচিত অন্য কি সম্পর্কে?
আউটপুটটি হ'ল:
chown: changing ownership of `fileB': Operation not permitted
সুতরাং কমান্ডটি যেহেতু এটি প্রয়োজনের পরে চালিত হয়নি sudo
এবং যদিও আমরা এই সিদ্ধান্তে পৌঁছাতে পারি যে && দ্বিতীয়টি প্রতিস্থাপন নয়sudo
whoami
উদাহরণস্বরূপ +1 ।