Shell程序设计
2012-05-02 16:28
232 查看
cat t1
sh t1 -3 a1 a2 a3
a1 a2 a3
m1 m2 m3
Shell 中双引号(" ") 单引号(' ') 倒引号(` `)
1.双双引号 除了$ ,倒引号, \ 保留其特殊功能外 其余做普通字符处理
2.单引号所有字符都作为普通字符
3.倒引号 `pwd` 解释命令 如果嵌套 内层必须要(\)转义 my = `echo My = \`pwd\``
顺序操作符
逻辑与(&&)成功返回0 步成功返回1
文件测试
-r file 可读
-w file 可写
-x file 可执行
-f file 普通文件
-d file 目录文件
-p file FIFO文件
-s file 不是空文件
字符串测试
str 不是空字符串
str1 = str2 str1等于str2(等号前后有空格)
str1 != str2 str1不等与str2
-n str 长度不为0
-z str 长度为0
eg: [ "$1" = "$2" ] or test "$1" = "$2"
[ "$1" = "Yes" ] or test "$1" = "Yes"
数值测试
n1 -eq n2 n1==n2
n1 -ne n2 n1!=n2
n1 -lt n2 n1<n2
n1 -le n2 n1<=n2
n1 -gt n2 n1>n2
n1 -ge n2 n1>=n2
[ "$1" -gt 10 ] or test "$1" -gt 10
逻辑操作符号组合测试语句
! 非
-a 与(and)
-o 或 (or)
( ) 优先括号前后有空格 并且用\ 转义
eg:
[ ! "$1" -le 0 ] or ! test "$1" -le 0
[ -f "$1" -a -w "$1"] or test -f "$1" -a -w "$1"
[ \( "$a" -gt 0 -a "$a" -lt 10 \) -a "$a" -ne 5 ]
case
case $1 in
file) echo "is file" ;;
dir) echo "is dir" ;;
*) echo "others" ;;
esac
for
for people in Tom Jack John Lucy
do
echo $people
done
for i in *.c
do
cat $i
done
dir=$1
if [ -d $dir ]
then cd $dir
for name in $ *
do
if [ -f $name ]
then cat $name
echo "End of ${dir}/$name"
else echo "Invalid file name:${dir}/$name"
fi
done
else echo "Bad directory name:$dir"
fi
echo $1 $2 $3 set m1 m2 m3 echo $1 $2 $3
sh t1 -3 a1 a2 a3
a1 a2 a3
m1 m2 m3
Shell 中双引号(" ") 单引号(' ') 倒引号(` `)
1.双双引号 除了$ ,倒引号, \ 保留其特殊功能外 其余做普通字符处理
2.单引号所有字符都作为普通字符
3.倒引号 `pwd` 解释命令 如果嵌套 内层必须要(\)转义 my = `echo My = \`pwd\``
顺序操作符
逻辑与(&&)成功返回0 步成功返回1
文件测试
-r file 可读
-w file 可写
-x file 可执行
-f file 普通文件
-d file 目录文件
-p file FIFO文件
-s file 不是空文件
字符串测试
str 不是空字符串
str1 = str2 str1等于str2(等号前后有空格)
str1 != str2 str1不等与str2
-n str 长度不为0
-z str 长度为0
eg: [ "$1" = "$2" ] or test "$1" = "$2"
[ "$1" = "Yes" ] or test "$1" = "Yes"
数值测试
n1 -eq n2 n1==n2
n1 -ne n2 n1!=n2
n1 -lt n2 n1<n2
n1 -le n2 n1<=n2
n1 -gt n2 n1>n2
n1 -ge n2 n1>=n2
[ "$1" -gt 10 ] or test "$1" -gt 10
逻辑操作符号组合测试语句
! 非
-a 与(and)
-o 或 (or)
( ) 优先括号前后有空格 并且用\ 转义
eg:
[ ! "$1" -le 0 ] or ! test "$1" -le 0
[ -f "$1" -a -w "$1"] or test -f "$1" -a -w "$1"
[ \( "$a" -gt 0 -a "$a" -lt 10 \) -a "$a" -ne 5 ]
case
case $1 in
file) echo "is file" ;;
dir) echo "is dir" ;;
*) echo "others" ;;
esac
for
for people in Tom Jack John Lucy
do
echo $people
done
for i in *.c
do
cat $i
done
dir=$1
if [ -d $dir ]
then cd $dir
for name in $ *
do
if [ -f $name ]
then cat $name
echo "End of ${dir}/$name"
else echo "Invalid file name:${dir}/$name"
fi
done
else echo "Bad directory name:$dir"
fi
相关文章推荐
- shell程序设计
- Linux程序设计-学习笔记-第二章shell程序设计
- Shell程序设计小知识[shell常识部分]
- linux程序设计——shell程序设计(第二章)
- Linux程序设计之shell程序设计
- shell程序设计(1)
- Linux06--Shell程序设计02 数据流重定向与管道
- 第二章 shell程序设计(3)
- 第二章 Shell程序设计
- UNIX操作系统中Shell程序设计
- Shell 基础篇---介绍几个shell程序设计小知识
- 第二章 shell程序设计
- 鸟书shell学习(三)shell脚本程序设计要点总结
- 实验四 shell程序设计: shell控制语句
- 设计一个Shell程序,在/userdata目录下建立50个目录,即user1~user50,
- Linux 的使用基础---Shell程序设计
- shell程序设计(1)
- Linux——实验一:Shell程序设计
- Linux程序设计(二)shell程序设计
- 第二章 shell程序设计