Working with Shell variables.
As like any other programming languages shell also has variable (most people dont know we can do programming with shell commands.). The shell variables takes single values as strings, even the numeric values is also considered as string.
Declaring and assigning shell variable:
You can declare and assign shell variable as simple as below.
bash-3.00$ color=yellow
You need to be careful while doing this. There should not be any space before and after equal to sign '=', if exists throws error.
Referencing a shell variable:
Below command will display the value stored in the variable color
bash-3.00$ echo $color
yellow
what is the output?
bash-3.00$ echo $coloryish
As no variable is declared as coloryish the output will be null. If you are actually interested to display "yellowyish", place the variable in curly braces as below.
bash-3.00$ echo ${color}yish
yellowyish
What if instead of variable color we supplied colour, which is not defined?
bash-3.00$ echo The dress is ${colour}ish
The dress is ish
How to handle this? Fortunately shell helps us to have default values to be set in case the variable is not defined as below
bash-3.00$ echo The dress is ${colour:-green}ish
The dress is greenish
The default value will come into effect only if the variable referenced is not declared. The syntax :- tells the shell to print the following character
Assigning Variables with read command:
We can assign values to multiple variables at a time with read commnad.
bash-3.00$ read city state message
Thazhekode Kerala Hi Mom!
The above command declares three variables city, state and message and assign values respectively.
city=Thazhekode
state=Kerala
message=Hi Mom!
bash-3.00$ read city state message
Thazhekode New Jersey Hi Mom!
city=Thazhekode
state=New
message=Jersy Hi Mom!
Read command assigns an individual word to a specified variable, and the remaining words are assigned to the last variable. To handle this situation you can use the escape character
bash-3.00$ read city state message
Thazhekode New\ Jersey Hi Mom!
Wednesday, October 26, 2011
Tuesday, October 25, 2011
UNIX: Shell scripts
Definition: Shell scripts are a series of shell commands added in a file in exactly the order in which they’ll be
executed. Upon giving execute permission for this file, you can execute this entire set of commands by just entering the file name as like a command.
Example:
This example script will search for a specified file in all dirctories.
UNIX: Setting custom prompts
The below command is based on ksh
$ bash
bash-3.00$ PS1='Order me$'
Order me$
$ bash
bash-3.00$ PS1='Order me$'
Order me$
UNIX Command Aliases
With alias, you can define new commands that does whatever you like to do with unix in a customized way.
Format for using aliases in
csh:- alias word command-sequence
ksh:- alias word='command'
Example:
bash-3.00$ alias shiyas='ls -CF'
If you want to see the list of aliases created, you only need to enter the word alias
Example:
bash-3.00$ alias
alias ls='ls -CF'
alias shiyas='ls -CF'
Note:
There should not be any space befor or after '=' sign.
If you want to make availability of an alias permanent add it into .chrsc if you are using csh or to .profile if you are using korn shell
Format for using aliases in
csh:- alias word command-sequence
ksh:- alias word='command'
Example:
bash-3.00$ alias shiyas='ls -CF'
If you want to see the list of aliases created, you only need to enter the word alias
Example:
bash-3.00$ alias
alias ls='ls -CF'
alias shiyas='ls -CF'
Note:
There should not be any space befor or after '=' sign.
If you want to make availability of an alias permanent add it into .chrsc if you are using csh or to .profile if you are using korn shell
C shell History Commands
| Command | Function |
| !! | Repeat the previous command |
| !$ | Repeat the last word of the previous command. |
| !* | Repeat all but the first word of the previous command. |
| ^a^b | Replace a with b in the previous command. |
| !n | Repeat command n from the history list. |
Friday, October 21, 2011
Identifying the type of shell
If you screen shows a % symbol, it means you are using the C shell or modified C shell (tcsh
). If your prompt contains $you could be using the Bourne shell, the Korn shell, or a variant thereof.
UNIX difference btw :q and :q!
Open a file in vi editor and modify the content of the file.
Now try entering :q
of modern UNIX is the energy of the UNIX programming community; plenty of UNIX users
decide to write a new version of a command in order to solve slightly different problems, thus
spawning many versions of a command.
C
No write since last change (:quit! overrides)
You get the error as above. In this case you should enter :q!
Hence
:q means quit vi editor
:q! quit regardless of whether any changes have occured
Now try entering :q
of modern UNIX is the energy of the UNIX programming community; plenty of UNIX users
decide to write a new version of a command in order to solve slightly different problems, thus
spawning many versions of a command.
C
No write since last change (:quit! overrides)
You get the error as above. In this case you should enter :q!
Hence
:q means quit vi editor
:q! quit regardless of whether any changes have occured
Subscribe to:
Posts (Atom)