# 获取字符串长度
string="abcd"
echo ${#string} # 输出 4, 变量为字符串时,${#string} 等价于 ${#string[0]}
# 提取子字符串
string="runoob is a great site"
echo ${string:1:4} # 输出 unoo 注意:第一个字符的索引值为 0
# 查找字符 i 或 o 的位置(哪个字母先出现就计算哪个):
string="runoob is a great site"
echo `expr index "$string" io` # 输出 4
显示换行
echo -e "OK! \n" # -e 开启转义
echo "It is a test"
输出结果:
OK!
It is a test
日志输出
./test.sh > log 2>&1和./test.sh 2>&1 | tee log的区别
# 以上两个当没有&时,1会被认为是一个普通的文件,有&表示重定向的目标不是一个文件,而是一个文件描述符
# ./test.sh执行脚本后,错误信息不会重定向到log文件里。
# ./test.sh > log 2>&1和./test.sh 2>&1 | tee log执行脚本后,标准输出和标准错误会重定向在log文件里,但是后者会一边输出日志在控制台,一边输出到log文件
./test.sh #执行脚本
ps -ef | grep test.sh # ps命令找到test.sh的pid
cd /proc/pid/fd # 进程pid所有打开的文件描述信息都在此
ls -l # 列出目录下的内容