سؤال

لدي برنامج نصي TCSH الذي يولد ملف نصي. واحدة من الخطوط في الملف النصي هي:

bla bla bla 'foo foo foo "bar bar bar"': etc etc;

لاحظ المتداخل ' و " وأيضا : و ; يجب أن يكون هناك.

ال : و ; تتطلب السلسلة بأكملها تحيط بها علامات الاقتباس. ومع ذلك، إذا قمت بذلك، فإن لدي مشكلة في الهروب من علامات الاقتباس.

الأمر هو:

echo "bla bla bla 'foo foo foo "bar bar bar"': etc etc;" >> outfile

كيف يمكنني الهروب من علامات الاقتباس حولها bar bar bar حتى يتم طباعتها بشكل صحيح؟

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

المحلول

echo "bla bla bla 'foo foo foo "\""bar bar bar"\""': etc etc;"

أو هذا:

echo "bla bla bla 'foo foo foo "\"bar bar bar\""': etc etc;"

هذه يجب أن تعمل من أجل المثال البسيط الذي قدمته، ولكن قد لا يساعد على ما تحاول فعلا القيام به ... اقتباس في TCSH أزعجني دائما، خاصة عند محاولة تحديد الأسماء المستعارة بمزيج من القراد الخلفي، ونقلت مزدوجة كوما.

تحذير من أن النموذج الثاني يعمل من أجل صدى، لكنه يخلق بالفعل ثلاث حجج منفصلة على سطر الأوامر، والتي هي (بعد تفسير تسلسل الهروب):

  • bla bla bla 'foo foo foo "bar
  • شريط
  • شريط ": إلخ، إلخ؛

النموذج الأول هو الذي يجب عليك استخدامه.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top