#!/bin/bash
chmod +x ss.sh
for file `ls /etc`
for file $(ls /etc)
my_name="hy"
echo $my_name
echo ${my_name}
for skill in java php c; do
echo "fsdf ${skill}fsdfsdf
done
readonly my_name
unset my_name 删除变量;不能删除只读变量
declare -i age=10
myArray=(1 2 3) 数组
declare -A ass_array 关联数组
ass_array["name"]="jj"
ass_array["age"]=30
0 1 2 # $?
单引号字符串不能使用变量,不能使用转移符号,都无效
echo {#my_name} 字符串长度 变量为字符串时等价于 echo {#my_name[0]}
echo ${my_name:1:4} 从字符串で第二个开始截取四个字符
echo `expr index "$my_name" io` 字符串中i或o出现で位置,第一个出现で结果
echo ${myArray[@]} 获取数组で所有元素
echo {#myArray\[@\]} {#myArray[*]} 数组长度
echo ${!myArray[@]} 获取数组で所有键
单行注释
:<<!
fsdf
fsdf
! 多行注释(!可以是其他符号单词,前后一致就行)
expr 用于计算 ,+ - * / % = == ! 表达式和计算符之间空格分开,== != 布尔计算符要用[ ] 括起来,且跟表达式空格分开 [ a == b ]
if [ a == b ]
then
echo "a==b"
fi
-eq -nq -gt -lt -ge -le 关系运算符 [ ]
! -o -a 布尔运算符 非或且
&& || 逻辑运算符 [[ ]]
= != -z -n $ 字符串运算符 ,等 不等,长度0返回true 长度不为零返回true 不为空返回true
-d -f -r -w -x -s -e 文件测试运算符 是否し目录,是否し普通文件,是否可读,可写,可执行,大小是否为0,是否存在
num=5
let num++
let num-- 通过let实现自增自减
num=((num + 1)) 通过(())实现自增自减
num=(expr num + 1) 通过expr实现自增自减
((num++)) 通过(())实现自增自减
echo -n 不换号 -e启用转义字符解释
echo "fs" > a.txt
echo "fd" >> a.txt
printf
test 表达式
或
表达式
function1(){
return 1
}
function1
echo ? 函数返回值通过调用函数后?获取 函数返回值必须在0-255的整数,函数必须先定义再使用 函数里通过n来使用传参 当参数\>=10时 使用{10}话空话括起来
包含文件
. filename
或
source filename