cat t1
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
2047

被折叠的 条评论
为什么被折叠?



