学习写shell

写脚本使我快乐~

变量

变量

定义变量

name=afreto

使用

echo $name

常见系统变量

  • $0 当前程序
  • $1 第 n 个参数, n= 1, 2, 3…
  • $* 所有参数, 不包括 $0, 为一个字符串
  • $2 传递给脚本的所有参数, 每个参数是独立的字符串
  • $# 参数个数, 不含 $0
  • $? 命令执行完成后的状态, 0 表示执行成功

set -- 清空所有位置变量

if

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
if condition
then
command1
command2
...
commandN
fi


if condition1
then
command1
elif condition2
then
command2
else
commandN
fi

判断数字

1
2
3
4
5
6
7
8
#! /bin/bash
# if test, 判断数字大小


NUM=100
if (($NUM > 1));then
echo "this $NUM is greater than 1"
fi

数字运算使用 let

判断目录是否存在

文件测试运算符见这里

1
2
3
4
5
6
7
8
#! /bin/bash
# 判断目录是否存在
if [ ! -d ~/mine ]
then
echo "~/mine not exists"
else
echo "exists"
fi

(())[] 的区别… 先放一放 暂时不知

for

1
2
3
4
5
6
7
for var in item1 item2 ... itemN
do
command1
command2
...
commandN
done
1
2
3
4
5
6
#! /bin/bash

for i in `seq 1 15`
do
echo $i
done

获取当前日期

1
`date +%Y%m%d`

输出颜色

echo -e "\033[32m TEXT \033[1m"

echo -e "\e[1;31m TEXT \e[0m"

获取当前文件名

1
echo "`basename $0`"

输出 a - z

1
echo {a..z}

设置 exit

1
exit 10