استرداد مسار الملف المصدر الحالي مع الأسماك

StackOverflow https://stackoverflow.com/questions/2037447

  •  19-09-2019
  •  | 
  •  

سؤال

في برنامج نصي شل السمك، هل من الممكن الحصول على المسار الذي يعيش فيه البرنامج النصي شل؟ في باش، يمكنك استخدام متغير bash_source للقيام بذلك.

هل كانت مفيدة؟

المحلول

طريقة واحدة هي استخدام الحالة أمر.

على سبيل المثال

~/tmp> echo status -f > show_filename.fish
~/tmp> fish show_filename.fish
/home/foo/tmp/show_filename.fish

--

آه، آسف - اذا حكمنا من خلال تعليقك، أنا أساء قراءة السؤال. اعتقدت أنك تعني المسار المؤهل بالكامل، بدلا من دليل البرنامج النصي.

يمكنك فقط إرسال نتيجة الحالة إلى DirName. إنها ليست وظيفة مدمجة للأسماك، مثل الحالة هي، ولكن السمك يميل إلى الاستعانة بمصادر خارجية أكبر قدر ممكن من هذه الوظائف عند أي حال (انظر "قانون البسيط"، في الأسماك تصميم Doc.). لا أستطيع أن أرى أي شيء أفضل أوامر في المستندات لهذا، لذلك ربما هذا جيد كما يمكننا الحصول عليه الآن؟

تعديل المثال، تغيير محتويات Show_Filename.fish أن تكون:

dirname (status -f)

الآن يجب أن تحصل على:

~/tmp> fish show_filename.fish
/home/foo/tmp
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top