الخط لا ينفذ في .bash_profile و .bashrc على Mac OSX Snow Leopard

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

  •  22-09-2019
  •  | 
  •  

سؤال

لقد قمت للتو بتثبيت Ruby Version Manager (RVM) الذي يعمل بشكل جيد لكنه طلب مني وضع السطر التالي في ملفات my /.bash_profile و ~ /.bashrc:

if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi

بالنظر إلى المحتوى الذي أراه فيما يلي:

tammam56$ cat /.bash_profile
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi

tammam56$ cat ~/.bashrc 
export PATH=/usr/local/bin:$PATH
export MANPATH=/usr/local/man:$MANPATH
if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi

ومع ذلك ، عندما أبدأ نافذة طرفية جديدة ، فإنه لا يقوم بتنفيذ الأمر ، فأنا أعرف ذلك أثناء تعيينك الافتراضي روبي فيون إلى 1.9 وإذا قمت بتنفيذ الخط يدويًا ، فأنا أحصل على الإصدار الصحيح:

tammam56$ ruby -v
ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]
Macintosh-37:~ tammam56$ if [[ -s /Users/tammam56/.rvm/scripts/rvm ]] ; then source /Users/tammam56/.rvm/scripts/rvm ; fi
Macintosh-37:~ tammam56$ ruby -v
ruby 1.9.1p378 (2010-01-10 revision 26273) [i386-darwin10.2.0]

أي أفكار كيف يمكنني إصلاح ذلك؟

شكرًا،

تام

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

المحلول

إذا كان لديك ~/.profile حاول إضافة السطر التالي إليه.

if [[-s/Users/tammam56/.rvm/scripts/rvm]] ؛ ثم Source/Users/tammam56/.rvm/scripts/rvm ؛ Fi

نصائح أخرى

هل أكدت أن الأوامر الأخرى في .bashrc و/أو .bash_profile يتم تحديثها بشكل صحيح؟

بعد ذلك ، يجب عليك تأكيد ما إذا كانت المحطة تبدأ القشرة كقذيفة تسجيل الدخول أم لا (انظر تحت التفضيلات -> بدء التشغيل).

من صفحة باش مان:

عندما يتم استدعاء Bash كقذيفة تسجيل دخول تفاعلية ، أو كقذيفة غير نشطة مع خيار--login ، فإنه يقرأ أولاً وتنفيذ المشاركات من الملف /الخ /الملف الشخصي ، إذا كان هذا الملف موجودًا. بعد قراءة هذا الملف ، يبحث عن ~/.bash_profile ، ~/.bash_login ، و ~/.profile ، في هذا الترتيب ، ويقرأ وينفذ الأوامر من الأول الموجود وقابل للقراءة. يمكن استخدام خيار -noprofile عندما تبدأ القشرة في منع هذا السلوك.

عندما يتم بدء تشغيل قذيفة تفاعلية ليست قذيفة تسجيل الدخول ، يقرأ Bash أوامر من ~/.bashrc ، إذا كان هذا الملف موجودًا. قد يتم تثبيط هذا باستخدام خيار - -NORC. سيؤدي خيار ملف -rcfile إلى إجبار Bash على قراءة وتنفيذ الأوامر من الملف بدلاً من ~/.bashrc.

لقد وجدت أن الحل الأسهل لهذه المسألة هو نقل جميع المحتويات من ملف ~/.bashrc الخاص بي (لذلك أصبح my ~/.bashrc فارغًا الآن) إلى ملف ~/.bash_profile جديد. الآن جميع علامات تبويب Terminal.App تلقائيًا جميع الخطوط المدرجة في ~/.bash_profile. هذا ينطبق أيضا على iterm.

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