Linux shell 经验手册__001__常识

1 引号: 单引号可避免任何变量扩展,如果要在引号内使用变量,应该使用双引号!

2 shell 模板:变量命名、语法格式等尽量规范,养成好的编程习惯,

#!/bin/sh

#program:
#   This program show "Hello Shell!" in you screen!
#
#Histroy:
#2017/6/25 author version

3 shell 中的特殊变量

$0 : 执行的脚本名称
$1 : 执行的脚本第一个参数
$@ : 代表[ “$1" "$2" "$3" "$4" ....]
$# : 表示包含参数的个数。
$*: 代表["$1 $2 $3 $4"]
$_ : 上次使用的指令的最后一个参数或指令本身;  
$$ : 目前Shell的进程PID;
$? : 上次执行指令的回传值(返回值);
$RANDOM : 随机数

环境变量:
$PATH, $ HOME, $MAIL, $SHELL,$HOSTNAME, $PWD, $~, $PS1

特别注意:
返回值大于255的情况,应该通过变量返回,而不是$?。

4 由export关键字处理过的变量叫做环境变量

子程序会继承父进程的变量(export);
子进程不会继承父进程的自定义变量(set);

5 read, array, declare

6 等号两边不能有空格;(条件判断的等号两边必须有空格)!

7 条件测试

这里写图片描述
这里写图片描述
这里写图片描述

8 常用程序控制语法的模板

# if 控制语句
if [condition]; then
    statements
elsif [condition]; then
    statements
else
     statements
fi

# for 循环语句
for variable in values
do 
    statements
done

# while 循环语句
while [condition]; do
    statements
done

# until 控制语句
until [condition]; do
    statements
done

# case 语句
case variable in
    pattern [ | pattern] ....) statements;;
    pattern [ | pattern] ....) statements;;
    ...
esac 

9 数据流重定向
以下语句将 stdout 与 stderr 分别存入不同文件中

#> find /home -name .bashrc > out.log 2> error.log

以下语句将 stdout 与 stderr 丢入垃圾箱

#> find /home -name .bashrc > /dev/null 2>&1

10 shell 内置命令

:冒号命令,是一个空命令
echo: 同printf,推荐使用 printf
evalexecexitexportreturnset,
shift,trap

11 expect 实现交互控制:经典示例

  #!/usr/bin/expect 
  set timeout 30 
  spawn ssh -l username 192.168.1.1 
  expect "password:" 
  send "ispass/r" 
  interact 

12 切换用户,并执行命令

切换用户只执行一条命令的可以用: 
#> su - oracle -c command
切换用户执行一个shell文件可以用:
#> su - oracle -s /bin/bash shell.sh

chmod
chown
fdisk
mkfs
jobs
type

—- 数值运算
declare -i total= firstnu secnu

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值