查看所有的Shell变量:[root@szm ~]# set

查看所有预定义Shell变量:[root@szm ~]# env

定义一个Shell变量: [root@szm ~]# VAR1="test"
[root@szm ~]# set | grep VAR1
VAR1=test
 
删除一个变量: [root@szm ~]# set | grep VAR1
_=VAR1
 
BASH=/bin/bash
HISTFILE=/root/.bash_history
LANG=en_US.UTF-8
PATH=/usr/Kerberos/sbin:/usr/Kerberos/bin:
SHELL=/bin/bash
UID=0
 
Shell变量赋值:不用加$,引用变量时要加$
 
输出命令:printf    echo
 
[root@szm bash]# cat mysc.sh 
#!/bin/bash
V1="abcdef"
V2=8888
V3=8
 
printf "%s\t%d" $V1 $V2
[root@szm bash]# . mysc.sh 
abcdef 8888[root@szm bash]# 
 
 

%d:整数

%s:字符串

\n:回车换行

\r:只回车

\t:水平制表符

\v:垂直制表符

 

运算:

1)表达式必须置于$[]内
2)数字与运算符之间应当有一个空格

[root@szm bash]# cat a1.sh 

#!/bin/bash

a=$[ 3+2 ]

echo "a="$a

b=$[ 3+2*25/3-1 ]

echo "b="$b

-gt:大于

-lt:小于

-eq:等于

-ne:不等于

-ge:大于等于

-le:小于等于

 

       -a file   True if file exists.

       -b file   True if file exists and is a block special file.

       -c file   True if file exists and is a character special file.

       -d file   True if file exists and is a directory.

       -e file   True if file exists.

       -f file   True if file exists and is a regular file.

       -g file   True if file exists and is set-group-id.

       -h file   True if file exists and is a symbolic link.

       -k file   True if file exists and its ‘‘sticky’’ bit is set.

       -p file   True if file exists and is a named pipe (FIFO).

       -r file              True if file exists and is readable.

       -s file   True if file exists and has a size greater than zero.

       -t fd     True if file descriptor fd is open and refers to a terminal.

       -u file   True if file exists and its set-user-id bit is set.

       -w file   True if file exists and is writable.

       -x file   True if file exists and is executable.

       -O file   True if file exists and is owned by the effective user id.

       -G file   True if file exists and is owned by the effective group id.

       -L file   True if file exists and is a symbolic link.

       -S file   True if file exists and is a socket.

       -N file   True if file exists and has been modified since it was last read.

       file1 -nt file2    True if file1 is newer (according to modification date) than file2, or if file1 exists  and file2 does not.

       file1 -ot file2

              True if file1 is older than file2, or if file2 exists and file1 does not.

       file1 -ef file2

              True if file1 and file2 refer to the same device and inode numbers.

 
控制流:
 
if[];then
    .....
fi
-----------------------------
if[];then
   .....
else
   .....
fi
-----------------------------
if[];then
    .....
elif[];then
   .....
elif[];then
   ....
if
-----------------------------
==========================================================
case .... in
    ..)
    .....
;;
    ..)
    .....
;;
    *)
    ....
esac
==========================================================
for ... in ...
do
   ......
done
--------------------------
while []
do
   .....
done
--------------------------
until []
do
  .....
cone
--------------------------
 
函数的定义与使用:
 
function ....()
{
    .....
}
 
包含功能(包含另一个Shell脚本):
. 文件名