কিভাবে মাছের শেল একটি উপনাম সংজ্ঞা?


204

আমি মাছের কিছু এলিয়াস সংজ্ঞায়িত করতে চাই। স্পষ্টতই এগুলি সংজ্ঞায়িত করা সম্ভব হওয়া উচিত

~/.config/fish/functions

আমি যখন শেলটি পুনরায় চালু করব তখন সেগুলি স্বয়ংক্রিয়ভাবে লোড হয় না। কোন ধারনা?


কেবলমাত্র কয়েকটি ভোট দিয়ে নীচের উত্তরটি আমার মতে সঠিক। ./Config/fish/function- এ স্বয়ংক্রিয়ায়িত হওয়া কেবলমাত্র ফাইলের প্রতি এক ফাংশন থাকলে কাজ করবে বলে মনে হয়।
— এমসি_ইলেক্ট্রন

উত্তর:


360

শুধু ব্যবহার alias। এখানে একটি প্রাথমিক উদাহরণ:

# Define alias in shell
alias rmi "rm -i"

# Define alias in config file
alias rmi="rm -i"

# This is equivalent to entering the following function:
function rmi
    rm -i $argv
end

# Then, to save it across terminal sessions:
funcsave rmi

এই শেষ কমান্ডটি ফাইল তৈরি করে ~/.config/fish/functions/rmi.fish।

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


3
আরও মনে রাখবেন যে মাছগুলিতে একটি উপনাম কোনও ফাংশনের চারপাশে কেবল শেলসক্রিপ্টের মোড়ক।
— ব্যবহারকারী 456584

@ ব্যবহারকারী 456584 ... এবং এটি খারাপ, কারণ আপনি করতে পারবেন না alias local "set -l";-(

13
কোন ফাইলটি এটি লাগাতে হবে তার কেবল একটি নোট ~/.config/fish/config.fishI
— ইরা হারমান

"$argv"বাশকে আমরা যেমন করি তেমন স্পেস দিয়ে যুক্তিগুলি পরিচালনা করার জন্য আমাদের উদ্ধৃতি দেওয়ার দরকার নেই "$@"?
— kyb

@ কীবোব, নাপ, মাছের মতো বাশের চেয়ে স্মার্ট। আসলে, মাছের সমস্ত পরিবর্তনশীল অ্যারে হয়। শেল ভেরিয়েবলগুলিতে যান এবং অ্যারে
— উপধারাতে

117

এভাবেই আমি একটি নতুন ফাংশন সংজ্ঞায়িত করব foo, এটি চালাব এবং অবিচ্ছিন্নভাবে এটি সংরক্ষণ করব।

sthorne@pearl~> function foo
                    echo 'foo was here'
                end
sthorne@pearl~> foo
foo was here
sthorne@pearl~> funcsave foo

ধন্যবাদ জেরুব ফানস্যাকভের পরে কোনও কারণে এটি আমাকে একটি ত্রুটি দিয়েছে: ট্রফ: মারাত্মক ত্রুটি: open /usr/share/fish/man/save_function.1 খুলতে পারে না ': এ জাতীয় কোনও ফাইল বা ডিরেক্টরি নেই
— আরমান্ডিনো

7
আপনি ব্যবহার করে ফাংশন সম্পাদনা করতে পারেন funced। যেমন funced foo।
— ডেনিস

14
চলমান funcsave {some_function_name}এটা সংরক্ষণ করতে হবে~/.config/fish/functions/{some_function_name}.fish
— Hjulle

55

উত্তরোত্তর জন্য, মাছের এলিয়াসগুলি কেবল ফাংশন:

$ alias foo="echo bar"
$ type foo
foo is a function with definition
function foo
    echo bar $argv; 
end

এটা মুছে ফেলার জন্য

$ unalias foo
/usr/bin/unalias: line 2: unalias: foo: not found
$ functions -e foo
$ type foo
type: Could not find “foo”

9
আপনি ফাংশনটি তৈরি করার পরে, আপনি এটি করতে পারেন funcsave foo। এটি এতে ফাংশনটি সংরক্ষণ করবে ~/.config/fish/functions/foo.fish, যেখানে কোনও নতুন অধিবেশন থেকে ডাকার পরে প্রথমবার માછલીগুলি স্বয়ংক্রিয়ভাবে এটি লোড করবে।
— লুক্রেটিয়েল

1
alias foo="echo bar"এতদূর সহজ সমাধান ছিল
— রনি

16
  1. যদি সেখানে নেই config.fish মধ্যে ~ / .config / মাছ / , এটা ভুলবেন না।
  2. সেখানে আপনি আপনার ফাংশন লিখতে পারেন।function name; command; end

15

আপনার ফাইলগুলি সে হিসাবে সংরক্ষণ করুন ~/.config/fish/functions/{some_function_name}.fishএবং আপনি যখন মাছ শুরু করবেন তখন সেগুলি স্বয়ংক্রিয়ভাবে জড়িত হওয়া উচিত।


14

ফিশ ~ / .config / ফিশ / কনফিগার.ফিশে কমান্ড প্রয়োগ করে শুরু হয়। এটি উপস্থিত না থাকলে আপনি এটি তৈরি করতে পারেন:

vim ~ / .config / માછલી / config.fish

এবং এটি দিয়ে সংরক্ষণ করুন :wq

ধাপ 1. কনফিগারেশন ফাইল তৈরি করুন (.bashrc এর মত)

config.fish

ধাপ ২. এইভাবে আপনার উপনামটি লিখুন;

ওরফে আরএম = "আরএম -i"


13

যদি আপনি এর abbrপরিবর্তে একটি যুক্ত করেন তবে আপনি আরও aliasভাল স্বয়ংক্রিয়-সম্পূর্ণ পাবেন। মাছগুলিতে abbrআরও বেশি ঘনিষ্ঠভাবে বাশ ওরফেটির আচরণের সাথে মেলে।

abbr -a gco git checkout

হবে -aএকটি নতুন dd abbreviation gcoযে বিস্তৃতি git checkout।

ফলাফলের স্বয়ংক্রিয়-সম্পূর্ণ বৈশিষ্ট্যগুলির একটি ভিডিও ডেমো এখানে


11

Properly / .config / ফিশ / ফাংশন থেকে সঠিকভাবে ফাংশন লোড করতে

আপনি ফাইলের মধ্যে কেবলমাত্র একটি ফাংশন সেট করতে পারেন এবং নাম ফাইলটি ফাংশন নাম + ফিশ এক্সটেনশান হিসাবে একই।

খোলা টার্মিনালে ফাইল কন্টেন্টগুলি পুনরায় লোড করার ফাংশনগুলি পরিবর্তন করুন (নোট করুন কিছু বিলম্ব হতে পারে ~ 1-5s)

আপনি যদি কমান্ডলাইন দ্বারা সম্পাদনা করেন সেভাবে

function name; function_content; end

তারপর

funcsave name

আপনার একই ক্রমে কনসোল এবং কাস্টম তৈরির ব্যবহারকারীর সংজ্ঞায়িত ফাংশন রয়েছে।


0

mkalias.fish নামক ~ / .config / માછલી / ফাংশনগুলিতে একটি ফাংশন তৈরি করুন এবং এটিতে রাখুন

function mkalias --argument key value
  echo alias $key=$value
  alias $key=$value
  funcsave $key
end

এবং এটি স্বয়ংক্রিয়ভাবে এলিয়াস তৈরি করবে।

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