আমি কীভাবে পাইথনের সাথে ব্যাশ প্রতিস্থাপন করতে পারি?


13

এই এসও প্রশ্নের গৃহীত উত্তর অনুসারে: পাইথন একটি দুর্দান্ত বাশ প্রতিস্থাপন করতে পারে

আমার প্রশ্নটি তখন, এটি কি: আমি কীভাবে একটি বিরামবিহীন সুইচ তৈরি করতে যাব? আমি মনে করি যে এই জাতীয় স্যুইচটি সাজানোর জন্য মূল জিনিসটি হ'ল: ভার্চুয়াল টার্মিনাল শুরু করার সময়, বোর্ন শেলের মতো কিছু না করে কিছু পাইথন শেল (যদিও তবে?) কল করুন।

যে জানার জন্য? যদি হ্যাঁ, আমি কীভাবে তা করতে পারি? সাধারণ শাঁসের এই উইকিপিডিয়া তুলনাটি একটি একক পাইথন শেল তালিকাভুক্ত করে না: কমান্ড শেলের তুলনা

উত্তর:


16

সেই থ্রেড এবং বিশেষত এর স্বীকৃত উত্তরগুলি শেল স্ক্রিপ্টিংয়ের জন্য পাইথন ব্যবহার সম্পর্কে , না ইন্টারেক্টিভ শেল হিসাবে ।

ভিন্ন ভাষায় স্ক্রিপ্ট লিখতে , আপনার স্ক্রিপ্টের শীর্ষে #!/usr/bin/env pythonপরিবর্তে উদাহরণ দিন #!/bin/bash

আপনি যদি অন্য কোনও ইন্টারেক্টিভ শেল ব্যবহার করে দেখতে চান তবে কেবল এটি চালান, উদাহরণস্বরূপ ipythonআপনার বিদ্যমান শেল প্রম্পটে টাইপ করুন । যদি আপনি এই শেলটি অবলম্বন করার সিদ্ধান্ত নিয়েছেন SHELL, আপনার সেশনটির শুরুতে পরিবেশ পরিবর্তনশীল সেট করুন ( ~/.profileবেশিরভাগ পরিবেশে বা ইন ~/.pam_environment), যেমন export SHELL=/usr/bin/ipython( .profileসিনট্যাক্স) বা SHELL="/usr/bin/ipython"( .pam_environmentসিনট্যাক্স)।

পার্ল বা পাইথনের মতো উন্নত ভাষার উপর ভিত্তি করে আমি যে শেল দেখেছি সেগুলির মধ্যে কোনওটিই আমার মতে ইন্টারেক্টিভ ব্যবহারের জন্য যথেষ্ট ভাল নয়। এগুলি সাধারণ কাজের জন্য খুব ভার্জোজ, বিশেষত একটি শেলটির সাধারণ কাজ যা একটি অ্যাপ্লিকেশন চালু করা হয়। আমি 4 বছর আগে একটি অনুরূপ বিষয়ে লিখেছি ; আমি মনে করি না তখন থেকে পরিস্থিতি মৌলিকভাবে উন্নতি হয়েছে।


14

আমি জানি এই প্রশ্নটি এখন বেশ পুরানো, তবে পাইথন 3 এর একটি সুপারসেটের উপর ভিত্তি করে একটি নতুন শেল রয়েছে যাকে বলা হয় xonsh যা আপনি যা খুঁজছেন তা হতে পারে।

ওয়েবসাইট থেকে:

জোনশ একটি পাইথন-ইশ, বাশওয়ার্ডস-লুকিং শেল ল্যাঙ্গুয়েজ এবং কমান্ড প্রম্পট। ভাষাটি বাশ এবং আইপিথন থেকে আপনি ব্যবহৃত অতিরিক্ত শেল আদিম সঙ্গে পাইথন ৩.৪++ এর সুপারসেট। এটি লিনাক্স, ম্যাক ওএসএক্স এবং উইন্ডোজ সহ সমস্ত বড় সিস্টেমে কাজ করে। জোনশ বিশেষজ্ঞ এবং নবাগতদের প্রতিদিনের ব্যবহারের জন্য বোঝানো হয়।

এটি xon.sh এ দেখুন


2

বরং না

কারণ হ'ল উন্নত সুবিধাগুলি মোকাবেলার জন্য পাইথনের কোনও সমর্থন নেই। সবচেয়ে খারাপ পরিস্থিতি হ'ল সিস্টেম ফাইল সম্পাদনা করার ক্ষেত্রে।

তুলনা করা

sudo sed -i -e "/\#LXC_DOMAIN/ s/\#//" /etc/default/lxc-net

সঙ্গে:

out = subprocess.run('''sudo sed -i -e "/\#LXC_DOMAIN/ s/\#//" /etc/default/lxc-net''', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,env={"PATH": "/usr/bin"})

আপনি সিস্টেম ফাইলগুলির জন্য পাইথনের নেটিভ ফাইল হ্যান্ডলিং ব্যবহার করতে পারবেন না, কারণ পাইথন সহজাতভাবে উন্নত সুবিধাসহ সাবকম্যান্ডগুলি কার্যকর করতে অক্ষম।


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

1

আইপিথন ঠিক আছে। এছাড়াও, 'ওএস' গ্রন্থাগারটি দেখুন।


আপনি ঠিক বলেছেন, আইপিথনের একটি স্পষ্ট পছন্দ হওয়া উচিত ছিল ... তবে আমি কীভাবে আইপিথনকে টার্মিনাল এমুলেটর বা স্বয়ংক্রিয় টার্মিনালের অভ্যন্তরে শুরু করতে পারি?
ব্যবহারকারী 89

কমান্ড: chfn -s $ (যা আইপথন)
user400344

এগুলি বেরিয়ে এসেছিল ... ঠিক: chfn -s $ (যা আইপথন) ... আইপিথনের পুরো পথটি / ইত্যাদি / শেলগুলিতে রয়েছে তা নিশ্চিত করুন।
user400344

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