עבור לתוכן

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

Featured Replies

פורסם

היי,

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

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 ~]#

פורסם
  • מחבר

אה

set a=8

הוא בעצם לא חוקי בכלל ב-bash?

:kopfpatsch:

פורסם

לאו דווקא,

BASH אמור לדעת לטפל יפה גם בSET.

איזה מערכת הפעלה מותקנת אצלך, מה הקרנל ומה הSHELL שאתה נמצא בו?

פורסם

אני חוזר בי,

במעטפת מסוג 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 ~]#

פורסם
  • מחבר

ה-shell הוא bash.

הגרסה של הקרנל היא 2.6.32-24-generic.

מערכת ההפעלה היא:

Ubuntu 10.04.1 LTS

ארכיון

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

דיונים חדשים