shell脚本基础阶段


编程
set un 显示每行的行号
set cul 定义光标下加行线
set ts=4 tab键顶替4个空格
1.每个shell脚本首行要加入 shengbang机制 也就是#!/bin/bash
2.执行方式 可以是软连接 比如脚本在data下 例如 ln -s /data/hello.sh /usr/local/bin
可以是不用软连接 增加脚本权限 chmod +x hello.sh ./hello.sh
如不增加脚本权限执行 例如 bash hello.sh 或管道执行 cat hello.sh | bash

3.远程连接使用脚本 curl www.liujinxi.com/hello.sh | bash 加上管道传给bash 直接在本端地址执行就行

排查
bash -n hello.sh(查看语法错误)
bash -x hello.sh(跟踪脚本执行过程,查看逻辑性错误)

变量
例如
unset $name 删除变量
uname=刘进喜 定义变量
环境变量
export name=liujinxi 定义环境变量
位置变量
$1,$2 ..对应第一个和第二个参数
$0 命令本身包括路径
$* 传递给脚本所有参数,全部参数整合为一个字符串
$@ 传递给脚本的所有参数,每个参数为独立字符串
$# 传递给加班的参数个数

使用rm 删除文件移动到别的目录并附加上时间

创建连接 ln -s test.sh a.sh
状态变量
$? 值为0 代表成功
$? 值是1-255 代表失败
脚本中碰见exit 就不往下执行,主动退出脚本
脚本中首行加 set -ue
格式化输出print
%s 字符串
%f 浮点型格式 小数
%d %i 十进制整数
%10s 预留十个字符的宽度,不到十个默认右对齐
%-10 左对齐
%03d 标识3位宽度,不足前面用0补全超出位数原样输出
算数运算
x=1
y=2
let z=x+y
z=$[x+y]
z=$((x-y))
expr $x + $y expr $x * $y echo $x*$y |bc
% 取模 取余数 echo $[RANDOM%100+1] echo -e "\033[1;$[RANDOM%7+31]mhello\033[0m"(随机颜色)
鸡兔同笼算法脚本

!/bin/bash

tou=$1 头增加变量1
jiao=$2 脚增加变量2
tu=$(((jiao-tou-tou)/2)) 用脚的数量减去头在减头除2就是兔的数量
ji=$[tou-tu] 再用头的数量减去兔的数量,就是鸡的数量
echo tu:$tu 在以此传参
echo ji:$ji

相关