سؤال

لدي ملف يسمى "physics 1b.sh". في باش ، إذا حاولت

x="physics 1b"
grep "string" "$x".sh

يشكو جريب:

grep:  physics 1b: No such file or directory.

ومع ذلك ، عندما أفعل

grep "string" physics\ 1b.sh 

أنه يعمل بشكل جيد. لذلك أعتقد أن المشكلة تتعلق بالمتغير الذي لا يتم توسيعه ليشمل الذروة الخلفية التي يحتاجها GREP إلى التعرف على المساحة. كيف يمكنني تشغيل هذا؟

باستخدام Bash 3.2 ، Mac OS 10.6.

يحرر:
لا تهتم ، كانت المشكلة أن X قد تم ضبطها على " physics 1b", ، لكن عندما فعلت echo $x للتحقق من المحتويات ، قطع باش المساحات في المقدمة حتى لم أستطع معرفة أن الأمر كان مختلفًا. الطريقة الأولى أعلاه تعمل في الواقع.

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

المحلول

ضع الحجة بأكملها في الربعات المزدوجة:

grep "string" "$x.sh"

نصائح أخرى

استخدم هذا في البرنامج النصي الخاص بك.

grep "string" "${x}.sh"

طريق اخر

grep "string" "${x}.sh"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top