বাশ ব্যবহার করে ভেরিয়েবলের বর্তমান ডিরেক্টরি সংরক্ষণ করবেন?


110

আমি যা করার চেষ্টা করছি তা হল বর্তমানের চলমান ডিরেক্টরিটি আবিষ্কার করুন এবং এটিকে একটি ভেরিয়েবলে সংরক্ষণ করুন, যাতে আমি চালাতে পারি export PATH=$PATH:currentdir+somethingelse। আমি তাদের সম্পূর্ণরূপে নিশ্চিত নই যে তাদের ডিফল্টরূপে সিডব্লিউডযুক্ত কোনও চলক রয়েছে কিনা।

আমি বাশ ব্যবহার করে কীভাবে চলমান ডিরেক্টরিটি ভেরিয়েবলে সংরক্ষণ করব?


সুতরাং এটি একটি ভেরিয়েবলে সংরক্ষণ করার জন্য আমি মায়ডির = করব। ?
বোকা.ফ্যাট.টি.টি.

1
হ্যাঁ mydir = দিয়ে পরীক্ষা করা হয়েছে। তারপরে ls $ mydir - তবে এটি আপেক্ষিক তাই এটি যেখানেই চালাবেন সেখান থেকে pwd হবে
এমকেলেেক্স

ধন্যবাদ! আসুন আশা করি এটি আমার জন্য কাজ করে
মূup়.ফ্যাট.ট্যাগ .২০

ওহ, আমার কিছু জায়গা ছিল tt $ {PWD worked কাজ করা উচিত ছিল। হা হা। ...
ওফস

উত্তর:


188

এটি চলমান কর্মনির্দেশক ডিরেক্টরিটির চলকের পক্ষে নিখুঁত পথ সংরক্ষণ করে cwd:

cwd=$(pwd)

আপনার ক্ষেত্রে আপনি কেবল এটি করতে পারেন:

export PATH=$PATH:$(pwd)+somethingelse

1
কোনও কারণে যদি আমি অন্য ডিয়ারে cwdপরিবর্তন করি তবে এটি পরিবর্তনশীলও আপডেট করে । যদি এটি pwdপ্রতিটি সময় ফাংশনটি কল করে ... dpaste.de/Kn7F আমি কীভাবে এড়াতে পারি?
tutuca

1
$CWDআপনার শেল একটি বিশেষ (সংরক্ষিত) পরিবেশ পরিবর্তনশীল হতে পারে। পরিবর্তে একটি আলাদা নামের চেষ্টা করুন, যেমন$CWD_MY_VAR
স্যাম্পসন-চেন

ব্যাকটিক্স ব্যবহার করা একই কাজ করে।
tutuca

1
শুধু ব্যবহার "$PWD"করবেন না কেন ?
লেটব্যাকুন

28

আমার .বাশ_ প্রোফাইলে নিম্নলিখিতগুলি রয়েছে:

function mark {
    export $1=`pwd`;
}

সুতরাং যে কোনও সময় আমি কোনও ডিরেক্টরি মনে রাখতে চাই, আমি কেবল টাইপ করতে পারি, উদাহরণস্বরূপ সেখানে চিহ্ন দিন

তারপরে যখন আমি সেই জায়গায় ফিরে যেতে চাই, আমি কেবল সেখানে সিডি লিখি


ভাল কাজ করে তবে স্পেস সহ পাথের জন্য যেমন, "গুগল ড্রাইভ" আপনাকে cd "$foo"পুরো পাথটি পড়ার জন্য করতে হবে
Mercergeoinfo

3
পথের ফাঁকা জায়গাগুলির সমস্যাটি ঘুরে দেখার export $1=`pwd` জন্য export $1="`pwd`" এবং যখন এই জাতীয় পাথ কল cd "$foo"করার সময় কেবলমাত্র পরিবর্তে ব্যবহার করুনcd $foo
Mercergeoinfo

Mercergeoinfo: কঠোরভাবে বলতে গেলে, উদ্ধৃতিগুলির export $1="`pwd`"প্রয়োজন হয় না, যেহেতু শব্দ বিভাজন কোনও অ্যাসাইনমেন্টের ডান হাতের অংশে ঘটে না, যদিও সম্প্রসারণের উদ্ধৃতিটি অভ্যাস হিসাবে অভ্যস্ত হওয়া ভাল।
ল্যারি

2
cdable_varsশুধু টাইপ করতেও দেখুনcd there
জন কামিংস

4

আপনার অ্যাসাইনমেন্টের একটি অতিরিক্ত রয়েছে $:

export PATH=$PATH:${PWD}:/foo/bar

3

একটি জন্য আপেক্ষিক উত্তর, ব্যবহার.

সাথে পরীক্ষা:

$ myDir=.
$ ls $myDir
$ cd /
$ ls $myDir

প্রথমটি lsআপনাকে বর্তমান ডিরেক্টরিতে সমস্ত কিছু প্রদর্শন করবে, দ্বিতীয়টি আপনাকে রুট ডিরেক্টরিতে ( /) ডিরেক্টরিতে প্রদর্শন করবে ।



0

আপনি শেল ইন-বিল্ড ভেরিয়েবল ব্যবহার করতে পারেন, এটির PWDমতো:

export PATH=$PATH:$PWD+somethingelse

0

বর্তমান ওয়ার্কিং ডিরেক্টরি ভেরিয়েবল অর্থাত্ পুরো পথ / বাড়ি / দেব / অন্যান্য

dir=$PWD

পুরো পথ মুদ্রণ করুন

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