shell 基础

后台执行:&
管道和重导向:|、>、>>、<
>  可将结果输出到文件中,该文件原有内容会被删除
>> 则将结果追加到文件中,原文件内容不会被删除。
|  管道可将命令的结果输出给另一个命令作为输入之用
字符串操作符:
str1=str2
str1!=str2
str str不是空字符时返回true
-n str str长度大于0返回true
-z str str长度大于0返回true
整数操作符号:
-eq
-gt
-lt
-ge
-le
-ne
不用=<>等符号
文件操作符:
-d file 是目录时返回true
-f file 是文件
-r file 是可读文件
-s file 文件长度大于0
-w file 可写文件
-x file 可执行文件
boolean:
!exp 否定
exp1 -a exp2 都为true时返回true
exp1 -o exp2 至少一个为true是返回true
str=aaa
注意=号前后没空格
if [ expression1 ]
then
commands1
elif [ expression2 ]
commands2
else
commands3
if
注意expression1前后有空格,then放到下一行
case string1 in
str1)
commands1;;
str2)
commands2;;
*)
commands3;;
esac
例子:
#i=1
# case $i in
> 1)
> echo "1";;
> 2)
> echo "2";;
> *)
> echo "test";;
> esac
1
 
for ((i=1;i<=$BackupTimeOut;i=i+10))
do
   if [  -f $PidFile ]
   then
      sleep 10
   else
      exit;
   fi
done
 
rm $badname 2>/dev/null
>/dev/null是伪文件,表示永远不写入,2>/dev/null表示标准错误不打印到屏幕上。
经常会在UNIX系统下的一些脚本中看到类似”2>&1″这样的用法,例如“/path/to/prog 2>&1 > /dev/null &”,那么它的具体含义是什么呢?
  UNIX有几种输入输出流,它们分别与几个数字有如下的对应关系:0-标准输入流(stdin),1-标准输出流(stdout),2-标准错误流(stderr)。”2>&1″的意思就是将stderr重定向至stdout,并一起在屏幕上显示出来。如果不加数字,那么默认的重定向动作是针对stdout(1)的,比如”ls -l > result”就等价于”ls -l 1 > result”。这样便于我们更普遍性的理解重定向过程。
  下面举例说明:
#cat std.sh
#!/bin/sh
echo “stdout”
echo “stderr” >&2

#/bin/sh std.sh 2>&1 > /dev/null
stderr

#/bin/sh std.sh > /dev/null 2>&1

第一条命令的输出结果是stderr,因为stdout和stderr合并后一同重定向到/dev/null,但stderr并未被清除,因此仍将在屏幕中显示出来;第二条命令无输出,因为当stdout重定向至/dev/null后,stderr又重定向到了stdout,这样stderr也被输出到了/dev/null。

 
$*引用script. 的执行引用变量,引用参数的算法和一般指令相同,指令本身为0,其后为1,然后依此类推。引用变量的代表方式如下:
$0, $1, $2, $3, $4, $5, $6, $7, $8, $9, ${10}, ${11}.....
个位数的,可直接使用数字,但两位数以上,则必须使用 {} 符号来括住。
$* 则是代表任何引用变量的符号。使用时,得视情况加上双引号。
echo "$*"
更有一个和 $* 具备相同作用的符号,但效用和处理方式略为不同的符号。
$@
$@ 和 $* 具备相同作用的符号,但是她们两者有一个不同点。
符号 $* 将任何的引用变量视为一个整体。但符号 $@ 则仍旧保留每个引用变量的区段观念。
$#
这也是和引用变量相关的符号,她的作用是告诉您,引用变量的总数量是多少。
echo "$#"
$? 状态值 (status variable)
一般来说,UNIX(linux) 系统的进程以执行系统调用exit() 来结束的。这个回传值就是status值。回传给父进程,用来检查子进程的执行状态。
一般指令程式倘若执行成功,其回传值为 0;失败为 1。
tar cvfz dfbackup.tar.gz /home/user > /dev/nullecho "$?"$$

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/559237/viewspace-615183/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/559237/viewspace-615183/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值