it-swarm.dev

الاستيفاء متغير في قذيفة

ربما يكون هذا سؤالًا أساسيًا للغاية ، لكن لسبب ما يبدو أنني أبدو أكثر وضوحًا.

لدي متغير يسمى filepath=/tmp/name

للوصول إلى المتغير ، أعلم أنه يمكنني القيام بذلك $filepath

في برنامج شل الخاص بي ، حاولت أن أفعل شيئًا كهذا (المقصود من علامات التجزئة الخلفية)

`tail -1 $filepath_newstap.sh`

فشل هذا الخط ، duuh! لأن المتغير لا يسمى $filepath_newstap.sh

كيف أرفق _newstap.sh باسم المتغير؟ يرجى ملاحظة أن القراد الخلفي يهدف لتقييم التعبير

78
tawheed

استعمال

"$filepath"_newstap.sh

أو

${filepath}_newstap.sh

أو

$filepath\_newstap.sh

_ هو حرف صالح في المعرفات. النقطة ليست كذلك ، لذا فقد حاولت شركة Shell الاستيفاء $filepath_newstap.

يمكنك استخدام set -u لجعل Shell إنهاء مع وجود خطأ عند الرجوع إلى متغير غير معروف.

148
choroba

استخدم الأقواس المتعرجة حول الاسم المتغير:

`tail -1 ${filepath}_newstap.sh`
12
user539810

في bash: tail -1 ${filepath}_newstap.sh

3
vyom