bash网络安全运维

一、bash入门

1.1 输出

echo "hello,world"
printf "hello,world"

1.2 变量

# 使用等于号=定义变量
MYVAR=textforvalue
# 使用$调用变量
echo $MYVAR
# 字符串需使用引号,双引号中的$会被识别为变量,单引号不会
var1="hello world"
var2='hello world'
# 可以使用$()存储shell的输出
pathVar=$(pwd)

# 位置参数,$1表示传递给脚本的第一个参数,$2第二,依次类推
# $0 是一个特殊的变量,它保存脚本的名字
# $# 返回参数的总数
# $? 返回上一次命令执行的结果,0为成功,非0代表有错

1.3 输入

bash 中通过 read 接收用户输入。read从stdin获取用户输入

read MYVAR
echo $MYVAR

1.4 条件语句

if cmd
then
    some cmds
else
    other cmds
fi

1.4.1 if 判断

测试文件是否存在:

if [[ -e $FILENAME ]]
then
    echo $FILENAME exists
fi
文件测试操作符 使用说明
-d 测试目录是否存在
-e 测试文件是否存在
-r 测试文件是否存在且可读
-w 测试文件是否存在且可写
-x 测试文件是否存在且可执行

检测变量 $VAL 是否小于变量 $MIN:

if [[ $VAL -lt $MIN ]]
then
    echo "value is too small"
fi

1.4.2 数值判断

数值测试操作符 使用说明
-eq 是否相等
-gt 是否大于
-lt 是否小于

在双圆括号中,将执行数值化的逻辑,任何非0值都被认为是true
比如 if (($?)),只有当前一个命令失败的时候,$?为非0值,这里(($?))表示true,if将得以执行。

1.4.3 多命令执行

两个命令之间通常使用换行符分隔,
也可使用 && 或 || 分隔,

cd $DIR && ls # 只在cd成功时才执行ls
cd $DIR || echo "failed" # 只在cd 失败时才执行echo
# 如果有多个语句需用大括号分组
[[ -d $DIR ]] || { echo "error"; exit; }

1.5 循环

1.5.1 while循环

i=0
wihle (( i <= 10 ))
do
    echo $i
    let i++
donw

1.5.2 for 循环

for ((i=0; i<10; i++))
do
    echo $i
done

1.5.3 参数循环

for canshu
do 
    echo here is an argument: $canshu
done

1.6 函数

# function 和 () 有一个即可,但为了可读性,推荐都使用
function myfun()
{
    echo here is some statements
}
myfun
myfun

原文地址:https://www.cnblogs.com/amnotgcs/p/14175808.html