`&> / 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.