`&> / Dev / নাল & of এর একাধিক লাইন সংক্ষিপ্ত বা মার্জ করুন`


11

প্রতিবার মেশিনটি শুরু করার সময়, আমি নিম্নলিখিত প্রোগ্রামটি চালাচ্ছি:

$ cat start.sh
#! /bin/bash
google-chrome &> /dev/null &
lantern &> /dev/null &
xdg-open . &> /dev/null &
emacs &> /dev/null  &
code ~/Programs/ &> /dev/null &
xdg-open ~/Reference/topic_regex.md &> /dev/null &

কষ্টকর &> /dev/null &... আমি কীভাবে যুক্তি সংক্ষিপ্ত করতে পারি?



দুর্দান্ত, দুর্দান্ত অ্যাপ্লিকেশন ত্রুটিগুলি সাধারণত জিনোম-সেশনে ঘটেছিল হঠাৎ ক্র্যাশ হয়ে যায়, তাই আমি এগুলি tmux সার্ভার থেকে শুরু করি। @ ডেনিসউইলিইমসন
— ক্যালকুলাস

উত্তর:


12

অংশটির &> /dev/nullঅর্থ আউটপুট পুনঃনির্দেশ। আপনি একই ফাইলে একটি ব্লকে গ্রুপ করে একাধিক কমান্ড পুনঃনির্দেশ করতে পারেন:

#! /bin/bash
{
google-chrome &
lantern &
xdg-open . &
emacs  &
code ~/Programs/ &
xdg-open ~/Reference/topic_regex.md &
} &> /dev/null

তবে একই জিনিসটি ব্যাকগ্রাউন্ডে ( &) এর পৃথক কমান্ড শুরু করতে ব্যবহার করা যাবে না । ফেলে &ব্লক পরে পটভূমিতে একটি একক স্ক্রিপ্ট হিসাবে সমগ্র ব্লক চলমান মানে হবে।


নোট করুন যে &>বাক্য >/dev/null 2>&1 গঠনটি অবচয়
— multithr3at3d

4
@ multithr3at3d পশিকসের সাথে বেমানান কোনও বাশিসম্মত? নিশ্চিত! অবমানিত বা অপ্রচলিত? না , এই তালিকার তিনজন লেখক শেষবার ২০১৫ সালে যা ভাবেন তা নির্বিশেষে। এটি একটি সংক্ষিপ্ত রূপ, এবং কমান্ড লাইনগুলি সংক্ষিপ্ত করা হ'ল ওপির লক্ষ্য এখানে। যদি কেউ #!/bin/bashপ্রথমে পোর্টেবিলিটিটি পরীক্ষা না করে কোনও আলাদা শেলের স্ক্রিপ্ট চালায় তবে অবশ্যই কাজ না করলে বাশের দোষ নেই।
— মিষ্টান্ন

12

আমি একটি ফাংশন লিখেছি এবং এটি .bashrcআমার টার্মিনাল থেকে বিচ্ছিন্ন জিনিস চালানোর জন্য রেখেছিলাম :

detach () 
{ 
    ( "$@" &> /dev/null & )
}

... এবং তারপর:

detach google-chrome
detach xdg-open ~/Reference/topic_regex.md

এবং আমি অলস হওয়ার কারণে আমি এর জন্য একটি শর্টকাটও লিখেছিলাম xdg-open:

xo () 
{ 
    for var in "$@"; do
        detach xdg-open "$var";
    done
}

xdg-openঠিক এক যুক্তির প্রত্যাশা করার কারণে , ফাংশনটি xoপ্রদত্ত সমস্ত আর্গুমেন্টের উপরে পুনরাবৃত্তি করে এবং xdg-openপ্রতিটিটির জন্য পৃথকভাবে কল করে calls

এটি এর জন্য অনুমতি দেয়:

detach google-chrome
xo . ~/Reference/topic_regex.md

5

আপনি পরবর্তী কমান্ডগুলির সাথে আউটপুটটিকে পুনর্নির্দেশ করতে পারেন

exec 1>/dev/null
exec 2>/dev/null

3

আপনি একটি লুপ তৈরি করতে এবং আর্গুমেন্ট হিসাবে আদেশগুলি দিতে পারেন:

for i in google-chrome "xdg-open ." "code ~/Programs/"; do
  $i &
done &>/dev/null

নোট করুন যে কোঁকড়া ধনুর্বন্ধনী সহ সাব-শেল পদ্ধতির সাথে ঠিক এইভাবে আউটপুটগুলি যোগ করতে এবং সেগুলি একবারে পুনঃনির্দেশ করা সম্ভব।


3

/dev/nullপুনঃনির্দেশটি সংক্ষিপ্ত করার জন্য আমি একটি ছোট ফাইলের মতো একটি বিশেষ ফাইল তৈরি করেছি । আমি /nনতুন ফাইলের পথ হিসাবে ব্যবহার করেছি :

sudo mknod -m 0666 /n c 1 3

এইভাবে আপনি পৃথক লাইনগুলি সংক্ষিপ্ত করতে পারেন যেমন:

google-chrome &>/n &

সূত্র: কীভাবে তৈরি / দেব / নাল?

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