বাশে, কীভাবে একটি উপামে অতিরিক্ত যুক্তি যুক্ত করবেন না?


10

আমি এমন কিছু করার চেষ্টা করছি

alias ftp='echo do not use ftp. Use sftp instead.'

এটি যাতে ftpদুর্ঘটনাক্রমে ব্যবহৃত হবে না। তবে আমি তা লক্ষ্য করেছি

ftp abcd.com

কমান্ড প্রতিধ্বনিত করবে

do not use ftp. Use sftp instead. abcd.com

কারণ এটি abcd.comএকটি আর্গুমেন্ট হিসাবে নেওয়া হয় echo

বাশকে abcd.comবিকল্পের সাথে যুক্ত না করার বা echoএটিকে অতিরিক্ত যুক্তি হিসাবে না নেওয়ার কোনও উপায় আছে কি ? (প্রতিটি পদ্ধতির জন্য কি কোনও সমাধান আছে?)

আমার মনে হয়েছিল আমি এটি তৈরি করতে পারি

alias ftp='sftp'

কিন্তু আমি শুধু নিজেকে ব্যবহার না করার মনে করিয়ে দিতে সব একসাথে কমান্ড স্টপ করতে চাই ftp


3
বেশিরভাগ ক্ষেত্রে আপনি ftpবিভিন্নভাবে নিষেধ করতে পারেন , তবে আপনি যদি এটি করতে চান - printfপরিবর্তে ব্যবহার করুন echo:printf "Do not use ftp. Use sftp instead.\n\c"
কোস্টাস

যোগ echoকরার জন্য sftpওরফে? অর্থাত alias ftp='echo "Do not use ftp"; sftp'। ব্যবহারের জন্য বাধ্য হয়েও আপনি এই অনুস্মারকটি পেয়ে যাবেন sftp
জোশ জলি

@ জোশজলি আমি কেবল "যাত্রা" করার পরিবর্তে সবাইকে একসাথে থামিয়ে দেওয়ার আদেশটি তৈরি করতে চেয়েছিলাম যাতে আমাকে ক্রমাগতভাবে ব্যবহার না করার কথা স্মরণ করিয়ে দেওয়া যায়ftp
11:56

1
খেয়াল করুন যে এলিয়াসগুলি অত্যন্ত সহজ; এগুলি সরল স্ট্রিং প্রতিস্থাপন ব্যতীত আর কিছুই নয় (অতিরিক্ত সীমাবদ্ধতার সাথে (১) প্রতিস্থাপনটি কেবল কমান্ড স্ট্রিংয়ের শুরুতে ঘটে এবং (২) এটি পুনরুক্ত নয়)। উপনামের নিজের সংজ্ঞা ছাড়িয়ে কীভাবে কোনও উপকরণ কাজ করে তা "কনফিগার" করার কোনও উপায় নেই।
কাইল স্ট্র্যান্ড

Er ... দুঃখিত, alias লেখা হয় রিকার্সিভ। আমি কী ভাবছিলাম তা নিশ্চিত নয়।
কাইল স্ট্র্যান্ড

উত্তর:


18

যখন আপনি একটি উপনাম সংজ্ঞায়িত করেন, আপনি যে আদেশটি লিখেছেন তার পরিবর্তে আপনি যে কমান্ডটি সেট করেছেন তা চালিত হবে। এর অর্থ হ'ল আপনি যখন দৌড়াবেন তখন ftp abc.comআসলে কার্যকর করা হয়

echo do not use ftp. Use sftp instead abc.com

একটি সহজ সমাধান হ'ল একটি উপাসের পরিবর্তে কোনও ফাংশন ব্যবহার করা:

ftp(){ echo 'do not use ftp. Use sftp instead'; }

বিকল্পভাবে, আপনি printfকস্টাসের পরামর্শ অনুযায়ী ব্যবহার করতে পারেন :

alias ftp="printf 'do not use ftp. Use sftp instead\n'"


9

#ওরফে স্ট্রিংয়ের শেষে কেবল একটি স্থান এবং মন্তব্য অক্ষর রাখুন :

alias ftp='echo do not use ftp. Use sftp instead. #'
ftp abcd.com
do not use ftp. Use sftp instead.

এটি প্যারামিটারগুলিকে একটি মন্তব্য হিসাবে বিবেচনা করবে। কেবলমাত্র আগে #কোনও স্থান যুক্ত করতে ভুলবেন না অন্যথায় এটি ওরফে বিস্তারের পরে আলাদা টোকেন হিসাবে ব্যাখ্যা করা হবে না।

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