命令汇总 - luoxiafeng/shell GitHub Wiki
1. 遍历当前目录下的文件
all_dir=`ls *`
for sig_dir in $all_dir
do
echo “$sig_dir”
done
2.分割字符串
string=“abc.123”
char=`echo $string|awk -F ‘.’ ‘{print $1}’ `
echo “$char”
运行结果: abc
3.截取字符串
string1=“inStab.bin”
string2=“inStac.bin”
string3=“inStad.bin”
string4=“outStad.bin”
如果你想保留in开头的文件,则需要截取前两个字符,看是不是“in",如果不是则删除文件。
header=`echo $string1|cut -c 1-2`
cut的作用就是截取,-c表示按照字符截取,1-2表示第一个字符到第二个字符(从1开始计数)。
4.目录切换
在函数中,如果你切换到子目录了。
pwd=/home/summer/
cd ./test
cd – #表示切换到pwd表示的目录(原目录)
5. ls 只查看当前目录下的目录文件
ls -l|grep ‘^d’
这个grep 本来是从前面的结果中,搜索首字母是d的文件。
但是,ls -l的结果,会列出文件的属性(目录、regular文件),目录文件结果首字母一定是d
summer@hanyong-HP-Pro-3000-Microtower-PC:~/code/driver$ ls -l
total 112
drwxrwxr-x 2 summer summer 4096 11月 26 2014 and_or
-rwxrwxr-x 1 summer summer 11571 1月 12 2016 calc.out
drwxrwxr-x 3 summer summer 4096 8月 19 19:59 camera
drwxrwxr-x 2 summer summer 4096 6月 30 11:12 csi
drwxrwxr-x 3 summer summer 4096 6月 30 11:29 ddr
6. 函数调用
#!/bin/bash
func(){
echo “$1”
#函数的第一个参数,用$1表示
}
var=“abc”
func $var
7.所有参数的个数
$# 表示所有参数的个数。不包括程序名。
8.字符串比较
str1=“ab”
if [ “$str1”x = "abc"x ];then
echo “equal”
fi
9.比较大小
if [ $a -lt 0 ];then
fi
小于,little,-lt
大于,larger,-lg
等于,equal,-eq
不等,-ne
10.数组
shell中的数组,是按照空格来分割的。比如我们当前说的遍历当前路径下的目录,ls * ,这个命令列出来的都是以空格为分割的。
all_dir=`ls *`
all_dir=(“samba” “venc” “vdec” “camif”)