সিএসএসে প্যাথমুনজের সমতুল্য কত?


-1

ব্যাশে pathmunge(), যেমন একটি সাধারণ ক্রিয়াকলাপ যেমন / ইত্যাদি / বাশআরসিআরসি প্রয়োগ করা হয় , PATHএটি ইতিমধ্যে উপাদানগুলির মধ্যে তালিকাভুক্ত না থাকলে কোনও পথ সংযোজন বা প্রিপেন্ড করে PATH

উদাহরণ:

$ echo $PATH
/bin:/usr/bin
$ pathmunge /home/me/bin
$ echo $PATH
/home/me/bin:/bin:/usr/bin
$ pathmunge /home/me/bin
$ echo $PATH
/home/me/bin:/bin:/usr/bin

পাথ যুক্ত করার নিখুঁত উপায় নিম্নলিখিত হিসাবে থাকবে:

$ echo $PATH
/bin:/usr/bin
$ PATH=/home/me/bin:$PATH
$ echo $PATH
/home/me/bin:/bin:/usr/bin
$ PATH=/home/me/bin:$PATH
$ echo $PATH
/home/me/bin:/home/me/bin:/bin:/usr/bin

আমি সিএসএস সম্পর্কে খুব কম জানি, এবং আমি কেবল এই সাধারণ জিনিসটি করতে চাই: তালিকায় ইতিমধ্যে এটি না থাকলে একটি পথ যুক্ত করুন। আমি সচেতন যে csh এর pathপরিবর্তে ব্যবহার করে PATHএবং এটি হ'ল যথাযথ csh অ্যারে।

হতে পারে সিএসএসের মতো কিছু অ্যারের ফাংশন রয়েছে if !(foobar in $path) then blahযা একটি pathmunge()অযৌক্তিকর মতো ফাংশন করে । সেক্ষেত্রে, এটি সঠিক উত্তর।



1
যদি আপনি echo $PATH | grep /home/me/binতবে আপনি রিটার্ন কোডটি চেক করতে পারেন এবং নতুন পথটি কেবলমাত্র এটি শূন্য নয় (যেমন স্ট্রিংটি পাওয়া যায় নি) যুক্ত করতে পারেন।
এএফএইচ

মন্তব্যগুলিতে @ ক্ল্যাকের "উদাহরণটি স্বয়ংক্রিয় -1" লাগানো গঠনমূলক নয়। প্রশ্নটিতে আপনি ব্যবহার করতে চাইছেন csh, কেউ যদি আপনার উদ্দেশ্য কী তা জিজ্ঞাসা করে (যদি এটি প্রশ্নটিতে বর্ণিত না হয়) তবে আপনি এই আদেশটি ব্যবহার করার চেয়ে ভাল উত্তর পেতে পারেন। এটি তাদের কম বৈধ করে না, তবে আপনি চিহ্নিত করতে পারেন যে আপনি সেই নির্দিষ্ট কমান্ডটি ব্যবহার করছেন।
রায়স্টাফেরিয়ান

ইন্টারনেটে সর্বত্র সিএসএস প্রশ্নগুলি একটি স্বয়ংক্রিয় "বাশ ব্যবহারের বিষয়ে বিবেচনা করুন" পাওয়ার প্রবণতা পেয়েছে, প্রকৃতপক্ষে আমি এই প্রশ্নের অনুরূপ প্রশ্নের শীর্ষে কাছাকাছি একটি পেয়েছি। কিছু শব্দের প্রাক-খালি করা।
ক্লেক

গ্রিপিং সহজেই মিথ্যা ইতিবাচক দিক দিতে পারে, এছাড়াও আমি যদি সম্ভব হয় তবে উপ-প্রক্রিয়াতে যাওয়া এড়াতে চাই। শেলিং এড়াতে সবচেয়ে পরিষ্কার বাশ সলিউশন ব্যবহার করে :$PATH:এবং একটি caseবিবৃতি যা *:$1:*কোনও মিল না করে কোনও মিল না করে। যেহেতু csh অ্যারেগুলিকে সমর্থন করে আমি আশা করছি সেখানে প্রকৃত অ্যারে অপারেটর রয়েছে, দুর্ভাগ্যক্রমে ম্যান পেজ এবং tcsh.org উইকি "অ্যারে", "তালিকা" বা "সিকোয়েন্স" এ নীরব রয়েছে, তারা ব্যতীত যে এগুলি বা সেই বিশেষ ভেরিয়েবলটি একটি অ্যারে।
ক্লেক

উত্তর:


0

অবশেষে ব্যাশে শেলিংয়ের সমাধান নিয়ে গিয়েছিলাম, কারণ '' csh '' ভাষার মধ্যে এটি সমাধান করা সম্ভব বলে মনে হচ্ছে না।

~/bin/munge_echo:

#!/bin/bash

function munge() {
  case ":$1:" in
    *:$2:*) echo "$1" ;;
    ::) echo "$2" ;;
    *) echo "$2:$1" ;;
  esac
}

munged="$1"

shift

while [ -n "$1" ]; do
  munged="$(munge "$munged" "$1")"
  shift
done

echo "$munged"

~/.csh:

setenv PATH `~/bin/munge_echo "$PATH" ~/.local/bin ~/bin`


1
হ্যাঁ, তবে সে কারণেই ইন্টারনেটে সিএসএসের তথ্য পাওয়া এত কঠিন। "ক্ষতিকারক হিসাবে বিবেচিত" বা "ব্যবহার না করার শীর্ষ 10 কারণ" বা "সিএসএস ব্যবহার না করার বিষয়টি বিবেচনা করুন" -এর জন্য সমস্ত রুট। :-)
14

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