Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
AmigaDOS
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
===Local and global variables=== As any other DOS, Amiga deals with [[Variable (computer science)|environment variables]] as used in batch programming. There are both global and local variables, and they are referred to with a dollar sign in front of the variable name, for example '''$myvar'''. Global variables are available system-wide; local variables are only valid in the current shell. In case of name collision, local variables have precedence over global variables. Global variables can be set using the command '''SetEnv''', while local variables can be set using the command '''Set'''. There are also the commands '''GetEnv''' and '''Get''' that can be used to print out global and local variables. The examples below demonstrate simple usage: <syntaxhighlight lang="doscon"> 1> setenv foo blapp 1> echo $foo blapp 1> set foo bar 1> echo $foo bar 1> getenv foo blapp 1> get foo bar 1> type ENV:foo blapp 1> setenv save foo $foo 1> type ENV:foo bar 1> type ENVARC:foo bar </syntaxhighlight> : If the <syntaxhighlight lang="doscon" inline>save</syntaxhighlight> flag of the <syntaxhighlight lang="doscon" inline>SetEnv</syntaxhighlight> command is set, this variable is saved permanently in <syntaxhighlight lang="doscon" inline>ENVARC:</syntaxhighlight> and remains available even after the current session has ended or the system has been restarted. Global variables are kept as files in '''ENV:''', and optionally saved on disk in '''ENVARC:''' to survive reboot and [[power cycling]]. '''ENV:''' is by default an assign to RAM:Env, and ENVARC: is an assign to '''SYS:Prefs/Env-archive''' where SYS: refers to the [[Booting#Boot_device|boot device]]. On bootup, the content of ENVARC: is copied to ENV: for accessibility. When programming AmigaDOS scripts, one must keep in mind that global variables are system-wide. All script-internal variables shall be set using local variables, or one risks conflicts over global variables between scripts. Also, global variables require filesystem access, which typically makes them slower to access than local variables. Since ENVARC: is also used to store other system settings than just string variables (such as system settings, default icons and more), it tends to grow large over time, and copying everything over to ENV: located on RAM disk becomes expensive. This has led to alternative ways to set up ENV: by using dedicated [[ramdisk]] handlers that only copy files over from ENVARC: when the files are requested. Examples of such handlers are <ref>{{cite web|url=http://aminet.net/package/disk/misc/HappyENV |title=disk/misc/HappyENV.lha |publisher=Aminet |access-date=2016-07-15}}</ref> and.<ref>{{cite web|url=http://aminet.net/package/util/sys/envhandler |title=util/sys/envhandler.lha |publisher=Aminet |access-date=2016-07-15}}</ref> An example demonstrating creative abuse of global variables as well as '''Lab''' and '''Skip''' is the AmigaDOS variant of the infamous [[GOTO]].<ref>{{cite web|url=http://www.safalra.com/programming/amigados/universal-register-machine/|title=Code by Stephen Morley|access-date=April 5, 2016}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)