এই শেল কমান্ডটিতে "-" (ডাবল ড্যাশ) এর অর্থ কী?


14

আমার এই শেল কমান্ডটি রয়েছে:

kill `cat -- $PIDFILE`

ডাবল কি - এখানে কি? শুধু ব্যবহার করবেন না কেন

kill `cat $PIDFILE`

উত্তর:


21

--বলে catনা বিশ্লেষণ করতে কি কমাণ্ড লাইন অপশন যেমন পরে আসে চেষ্টা করুন।

উদাহরণ হিসাবে, ভেরিয়েবল $PIDFILEহিসাবে সংজ্ঞায়িত হলে দুটি ক্ষেত্রে কী হবে তা ভেবে দেখুন PIDFILE="--version"। আমার মেশিনে, তারা নিম্নলিখিত ফলাফল দেয়:

$ cat $PIDFILE
cat (GNU coreutils) 6.10
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by Torbjorn Granlund and Richard M. Stallman.

$ cat -- $PIDFILE
cat: --version: No such file or directory

3
এটি লক্ষণীয় যে এই আচরণটি (খুব সাধারণ থাকাকালীন) রিসিভ প্রোগ্রামের মাধ্যমে সংজ্ঞায়িত হয় (যেমন cat) এবং শেল দ্বারা নয়।
dmckee --- প্রাক্তন-মডারেটর বিড়ালছানা

আপনার নিজের শেল স্ক্রিপ্টটি লেখার জন্য এমন কোনও ডকুমেন্টেশন বা টিউটোরিয়াল রয়েছে যা বুঝতে পারে যে --কমান্ড লাইন বিকল্পগুলির শেষ? আমি পেয়েছি এবং অন্যান্য কৌশলগুলি নিয়ে দেখেছি, তবে কিছুই আলোচনা করছে না --
সিএমসিডিগ্রাগনকাই

3
@ সিএমসিডিগ্রাগনকাই আপনাকে getopt(1)ম্যান পৃষ্ঠা থেকে আর দেখার দরকার নেই : "'-' প্যারামিটারের পরে প্রতিটি পরামিতি সর্বদা একটি অ-বিকল্প প্যারামিটার হিসাবে ব্যাখ্যা করা হয়"।
মিকায়েল অুনো

1

POSIX.1-2017

পসআইএক্স এটিতে এটিও নির্দিষ্ট করে: http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html#tag_12_02

12.2 ইউটিলিটি সিনট্যাক্স নির্দেশিকা

গাইডলাইন 10:

প্রথম - যুক্তি যা কোনও বিকল্প-যুক্তি নয় তা বিকল্পগুলির সমাপ্তি নির্দেশ করে এমন একটি সীমানা হিসাবে গ্রহণ করা উচিত। নিম্নলিখিত কোনও যুক্তি অপারেশন হিসাবে বিবেচনা করা উচিত, এমনকি যদি তারা '-' অক্ষর দিয়ে শুরু হয়।

আরও দেখুন: /unix/11376/ কি-does-double-dash-mean-also- জ্ঞান-as-bare-double-dash

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