PRODUCT |

|

|
|

|
|
|
|
|
FAQ |
|

|
|
|
|
|
|
LEARN SCRIPTING |
|

|
|
|
|
|
|
|
|
|
|
SAMPLE SCRIPTS |
|
|

|
|
|
|
|
|
|
|
|
|
|
|
|
|
HELP / DOCUMENTATION |
|

|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|
|
|
Learning Scripting - Lesson 2
(Introduction to variables, Detailed look at a command)
|
|
In this lesson, we will introduce the concept of a variable. We will
look in detail at the command structure and its various important aspects.
As part of the discussion, we will also learn a few new commands, which we will use to emphasize some of
the concepts.
PREPARATION
-
Did you understand the important concepts in the last lesson ? If not, please take a look at that
lesson again. Look at the words, phrases and sentences in red color. Make sure you understand them.
-
Start biterScripting. Enter the following command exactly as you see it below. Then press the ENTER key.
Command
script "http://www.biterscripting.com/LearningScripting/Prep2.txt"
Keep biterScripting open throughout this lesson. Make
C:/LearningScripting/Lesson2 the current directory, by entering the following command.
(This directory was created by the above script command.)
Command
ccd "C:/LearningScripting/Lesson2"
2.1. VARIABLES
No programming language will be complete without variables. A variable is a place-holder for a value.
Each variable has a type, it is called the variable type. The variable can hold
values only of that type. biterScripting provides various types. In this lesson, we will use variables
of type - string. The string type is abbreviated as str. A string
is a string of characters. We will explain the concepts of variable and string with examples.
Enter the following command.
Command
var string s
The var command declares a variable. It takes two or more arguments. The first
argument is the variable type, the second argument is the variable name. In this
example, we named the variable 's' . The var command can be used to declare more than one variable. Enter
the following command.
Command
var string s2 s3 s4
Above, we declared three variables. Their variable names are s2, s3, and s4. Their variable type is string.
A variable name can be any combination of characters, digits, underscores, etc. The first letter of the
variable name must not be a digit. Further, a variable by the same name can only be declared once.
Type the following command.
Command
var string s
What did the above command do ? You got the error 'Variable s is already declared.' .
Once a variable is declared, it can be accessed by prepending a dollar sign
($) to its name. Enter the following command.
Command
echo $s
The echo command displays the value of a variable.
The output of the above command is - nothing. This is because variable s has not been assigned a value yet.
The variable value is the value a variable holds. Let's go ahead and assign a value
to variable s using the following command.
Command
set $s = "This is my first string value."
The set command above assigned the value "This is my first string value." to variable s.
The syntax of the set command has the word 'set', followed by a variable, followed by the equal sign (=), followed by a value. Enter
the echo command above again to verify that the value of variable $s is
correctly set to "This is my first string value." .
Command
echo $s
QUESTION 2.1
We declared variables s2, s3 and s4 above - all of variable type string. Assign them values "second value",
"third value" and "fourth value" respectively.
Answer
2.2. COMMANDS - A DETAILED LOOK
We saw so far, that commands have arguments. In case of help command, we also saw that some commands have
options. (The help command has the option -s (search) . ) Let's look at all aspects of a command.
Figure 2.1 - biterScripting Command
As you can see, there are five aspects to a command.
- Options
- Arguments
- Stream Input
- Stream Outout
- Stream Error
I will explain them all one by one.
2.3. COMMAND ARGUMENTS
Command arguments are objects on which the command will operate. We looked at some command
arguments in the last lesson. We used a directory name or path as a command argument for the ccd command. We used
a help topic or search word as a command argument for the help command. Command arguments can be anything depending
on the command. They can be file names, directory names, file paths, directory paths, constants (double quoted
strings), variables, words, etc. What type of an object, depends on what that particular command is expecting.
Most commands take arguments of type string. Thus, for these commands, whichever way you specify
a command argument, it must always result in data of type string. Following are the various ways in which you can specify
command arguments. I will show an example for each.
A Constant | "This is my string argument." |
A variable | $s |
A function call | gettime() |
An inline command | { echo "Pass this string to the command." } |
An expression consisting of any of above | ("This is my string argument."+" But, you can use it.") |
All of the above must return data of type string.
(You don't know what function calls, inline commands and expressions are yet - and, that's ok.
I listed them here just to make this discussion complete.) The point is,
there are several ways to pass arguments to a command. That's the strength of biterScripting. You do not have to know
up-front what the arguments are. You do not need to hardcode them. I will soon show you some examples of how to harness
this power.
QUESTION 2.2
Among the following, which have the type string ?
- "Hello world"
- 5
- 3.20
- "3.20"
Answer
2.4. COMMAND OPTIONS
Command options provide directions to the command as to how it is to
operate on command arguments. Command options are specified with a dash (-) followed by a letter. We saw that
help command accepts an option -s. This option directs the help command to treat command arguments as search words.
Without this option, the help command treats command arguments as help topics.
QUESTION 2.3
Read the help page for the lf command. We will need it for further discussion in this lesson.
Also, lf is one of those commands that you will use often.
Answer
Many commands take more than one option. For example, the lf command (list files/directories),
takes the following options.
-r (recursive)
-g (go around errors)
-t (list type)
-c (list creation time)
-a (list access time)
-m (list modification time)
-s (list size)
-n (list name)
You can specify command options in any order. Also, you can combine two or more command options
after a single dash. All of the following are valid ways of specifying command options for the lf command.
-n (list name)
-c -n (list creation time and name)
-n -c (same as -c -n, list creation time and name)
-cn (same as -c -n, list creation time and name)
-s -cn (list size, creation time and name)
-scn (same as -s -cn, list size, creation time and name)
2.5. OUTPUT, ERROR AND INPUT STREAMS
A stream is a collection of bytes. Output from a command, errors from a command and
input to a command are called streams. (There is some significance to using the word 'stream'. In programming
world, you may have also heard the words standard output, standard error, standard input, stdout, stderr,
stdin, etc. For our purposes, they all mean one and the same. They are all collections of bytes.)
Stream output is where a command writes its output. By default this output goes to
the screen.
Stream error is where a command writes errors encountered during execution of
the command. By default, these errors also go to the screen.
Stream input is where a command reads its input from. It is the input that the
command will operate on, in addition to the command arguments. By default, stream input is empty.
Let us execute some commands and look at their stream output, error and input. Enter the following command.
Command
lf -rn "*" "C:/LearningScripting"
The lf command lists files and directories within a directory. The "C:/LearningScripting"
is the directory. "*" is the pattern for file/directory names. -r means recursive. -n means list file/directory name.
The lf command always lists file and directory names with full path, starting with "C:/"
The stream output of the above lf command contains file and directory names, one per line. This stream output
appears on screen by default.
QUESTION 2.4
In the lf command we entered above, what command options and command arguments did we use ?
Answer
Now, enter the following command.
Command
ccd "C:/LearningScripting/XYZ"
The stream error from the above ccd command contains a string such as
'Unable to change current directory to C:/LearningScripting/XYZ .' . (We are assuming that the directory
C:/LearningScripting/XYZ does not exist.) This stream error appears on screen by default.
DID YOU KNOW ?
-
We saw that we can use pattern-matching character star (*) in the lf command. The repro command
also accepts star (*) as a pattern-matching character. Enter the following commands.
Commands
ccd "C:/LearningScripting/Lesson2"
lf -n "*.txt"
repro "*.txt"
The lf command above will list all files with extension .txt . Similarly, the repro command will
reproduce the contents of all files with extension .txt .
-
biterScripting keeps a history of commands you type. Couple of keys on the keyboard are programmed
to navigate through this command history. The F3 key is used to recall previous command. The
F4 key is used to recall next command. When you use these keys, biterScripting will bring in
the appropriate command into the input area. This convenience comes in handy when you are typing long
commands again and again. Instead of having to retype the entire command again, just recall the previous
command using the F3 and F4 keys, make necessary changes, if any; then hit ENTER to send the command for processing.
Try the F3 and F4 keys now.
If the cursor is in the input area, the UP and DOWN keys work the same way as F3 and F4 respectively.
All such keyboard shortcuts are described in the help topic - keyboard . To see this help topic,
type the following command.
Command
help keyboard
SUMMARY
In this lesson, we learned
- How to declare variables. We learned one variable type - string.
- Detailed aspects of a command - arguments, options, stream output, stream error, stream input.
- Some additional commands - var, echo, set, lf.
HOMEWORK 2
-
Revisit the important concepts we learned in this lesson (words, phrases or sentences in red color).
Make sure you understand them.
Answer
-
Using the lf command, list all files with extension .txt in directory C:/LearningScripting (and its subdirectories).
Answer
|
|
© 2008-2014, biterScripting.com. All rights reserved.
biterScripting, biterScript, biterBrowser, biterMobile, biterScripting.com, FVA (Forward Variable Assignment) are trademarks of biterScripting.com. Is it biterScripting-compatible ? is a service mark of biterScripting.com.
Explorer, Unix, Windows are trademarks, service marks or other forms of intellectual property of their respective owners.
|
|