הגדרת משתנים ב- bash - לינוקס, Mac ומערכות הפעלה אחרות - HWzone פורומים
עבור לתוכן
  • צור חשבון

הגדרת משתנים ב- bash


[ViT]

Recommended Posts

היי,

אני קצת לא מבין מה קורה פה:

vit@vit-desktop:~$ var1=5
vit@vit-desktop:~$ echo $var1
5
vit@vit-desktop:~$ set var1=12
vit@vit-desktop:~$ echo $var1
5

למה זה קורה? איך בעצם מוגדר var1? אני יודע למשתני סביבה יש עדיפות על משתנים לוקליים,

אבל בדקתי ב-export ו- var1 לא מופיע שם.

תודה רבה על העזרה

קישור לתוכן
שתף באתרים אחרים

היי,

הפקודות SET ובנוסף גם SETENV שייכות למעטפת ה-TCSH, CSH וה-KSH.

הפקודה SET שוות ערך למשתנה לוקאלי וSETENV הינה משתנה סביבתי.


[root@rtbimages ~]# var1="hello"
[root@rtbimages ~]# echo $var1
hello
[root@rtbimages ~]# tcsh
[root@rtbimages ~]# echo $var1
var1: Undefined variable.
[root@rtbimages ~]# set var1="hi!"
[root@rtbimages ~]# echo $var1
hi!
[root@rtbimages ~]#

קישור לתוכן
שתף באתרים אחרים

אני חוזר בי,

במעטפת מסוג BASH תשתמש בEXPORT או VAR=

בTCSH, CSH תשתמש בSET וSETENV.

אגב,

נסה להשתמש גם בDECLARE על מנת להכריז אם המשתנה הוא מסוג INTEGER, TAG וכו'.


[root@rtbimages ~]# declare -i test
[root@rtbimages ~]# test="hello"
[root@rtbimages ~]# echo $test
0
[root@rtbimages ~]# test="123"
[root@rtbimages ~]# echo $test
123
[root@rtbimages ~]#

קישור לתוכן
שתף באתרים אחרים

set ב bash עושה משהו אחר לגמרי.

הוא לא משמש להשמת משתנים, בין אם הם משתני סביבה או לא.

כדי להבין מה קרה תוסיף

echo $1

בסוף הדוגמה שלך.

קרא עוד על כך כאן:http://www.gnu.org/software/bash/manual/html_node/The-Set-Builtin.html

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

×
  • צור חדש...