বাশ যদি একক লাইনে থাকে


51

আমি জানতে চাই যে আমি যদি একটি লাইনে বাশ স্ক্রিপ্টের মধ্যে শর্তাবলী লিখতে পারি তবে কীভাবে লিখতে পারি।

উদাহরণস্বরূপ, আমি কীভাবে এটি একটি একক লাইনে লিখতে পারি এবং তারপরে অন্যটির মতো করে রাখি?

if [ -f "/usr/bin/wine" ]; then
    export WINEARCH=win32
fi

আমি এটি জিজ্ঞাসা করছি কারণ আমার .Bashrc এ আমার বেশ কয়েকটি উপাত্ত রয়েছে এবং একাধিক সিস্টেমে আমার একই .bashrc (সিঙ্ক করা) আছে, তবে প্রতিটি সিস্টেমে আমার সমস্ত এলিয়াসের প্রয়োজন নেই। আমি তাদের বেশিরভাগ ভিতরে বিবৃতি রেখেছি এবং এটি এখন খুব সুন্দরভাবে কাজ করছে তবে তারা প্রচুর জায়গা নেয়, 3 টি লাইন প্রতিটি প্লাস তাদের মধ্যে ফাঁকা রেখা (আমি সহজে এগুলিকে দৃশ্যমান করতে চাই)

আমি এই কৌশলটি পরিবেশের পরিবর্তনশীলগুলির জন্যও ব্যবহার করব।


4
আপনি আরও লিখতে পারেন[ -f "/usr/bin/wine" ] && export WINEARCH=win32
গ্লেন জ্যাকম্যান 20'17

3
মনে রাখবেন যে সংক্ষিপ্ততর আরও ভাল নয়। আপনি শেলের লজিক অপারেটরগুলির সাথে সূক্ষ্ম লজিক ত্রুটি পেতে পারেন। পড়তে এবং বজায় রাখার জন্য আরও সহজ কি তা চয়ন করুন।
গ্লেন জ্যাকম্যান 20'17

উত্তর:


84

আপনি এটি যেমন লিখতে হবে:

if [ -f "/usr/bin/wine" ]; then export WINEARCH=win32; fi

মনে রাখবেন যে এটিও লিখিত হতে পারে (@glennjackman এর পরামর্শ অনুসারে):

[ -f "/usr/bin/wine" ] && export WINEARCH=win32

1
ওয়েল এটি সহজ ছিল ... :) এখন আমি এটি জিজ্ঞাসা করার জন্য বেদাহীন মনে হচ্ছে। উত্তরের জন্য আপনাকে ধন্যবাদ, এটি অনেক সাহায্য করেছে!
হোরাইইউ মেলেন্ডিয়া

7
একটি পার্থক্য আছে। ১. এক্সপ্রেশন 0 স্ট্যাটাস সহ প্রস্থান করবে, ২. ফাইল উপস্থিত না থাকলে এক্সপ্রেশনটি 0 টি নন স্ট্যাটাসের সাথে প্রস্থান করবে। এটি যদি আপনি কিছু স্বয়ংক্রিয় কাজে যেমন মোতায়েনের মতো ব্যবহার করেন তবে কার্যকারিতা সাফল্যের সাথে কমান্ডের প্রস্থান স্থিতির উপর নির্ভর করে তবে এটি তাত্পর্যপূর্ণ হতে পারে।
জোনিস গ্রুজিস 12

@ HorațiuMlendea সম্ভবত এটি সহজ ছিল। আপনি যদি জানেন কিভাবে। তবে বাক্য গঠনটি খুব মজাদার উদাহরণস্বরূপ [1 == 1] একটি ত্রুটি তবে [1 == 1] কাজ করে। এবং আধা-কলোন। কিছু খারাপভাবে খারাপভাবে ডিজাইন করা সিনট্যাক্স না জেনে আপনি কীভাবে বিশ্রী বোধ করতে পারেন। আপনার 'অনুভূতি' মোটেই বোঝা যায় না। দুর্ভাগ্যক্রমে আপনি কেন বুঝতে না পারলেও এটি একটি দরকারী প্রশ্ন ছিল।
বারলপ

@ বালাপ নো, আপনার বক্তব্যটি আমি পুরোপুরি দেখতে পাচ্ছি এবং আমি সম্মত। এটি ঠিক সেই সময় আমি পৃথক বিটগুলি বুঝতে পেরেছিলাম যা সেই বাক্য গঠনটি তৈরি করেছিল (&& এর সাথে একটি)। সাধারণত জিনিসগুলিকে একসাথে রাখা সহজ এবং স্বজ্ঞাত, তবে আপনি যেমনটি বলেছিলেন, এই ভাষাটি বেশ মজাদার এবং খুব স্বজ্ঞাত নয়।
হোরাইইউ মেলেন্ডিয়া

4

আমি আরও দেখতে পেলাম যে কোনও কমপ্লেক্স টাইপ করে যদি অন্য কমান্ড হয় তবে হিট এন্টার চাপুন এবং তারপরে এটি কার্যকর হওয়ার পরে ঠিক উপরের তীরটি চাপুন। কমান্ড লাইনটি অবশ্যই শেষ টাইপ করা কমান্ডটির পুনরাবৃত্তি করবে তবে এই ক্ষেত্রে এটি আপনার প্রয়োজনমতো সমস্ত লাইনে ফেলে দেয়। এটি একটি প্রতারণামূলক উপায়, তবে এটি কার্যকর।


5
মনে রাখবেন যে এটি আপনার শেলের উপর নির্ভর করে (এবং সম্ভবত আপনার শেলের সেটিংসের উপরে)। আমার কম্পিউটারে কিছু দ্রুত পরীক্ষার মাধ্যমে এটি কাজ করছে বাশে (সুতরাং একটি +1 রয়েছে) দেখায়, তবে পূর্ববর্তী কমান্ডগুলিতে ফিরে আসার সাথে সাথে Zsh লাইন ব্রেকগুলি সংরক্ষণ করে।
বিট্রি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.