Linux & shell (二)
-
date +%s
- 时间戳 (1970-1-1-0-0-0 开始到现在的秒数)
-
date ±%A
-
星期天
-
functionname arg1 arg2;
-
函数
-
$1 参数一
-
$@ 所有参数分开显示
-
$* 所有参数连在一起显示
-
获取函数返回值,在函数执行之后使用$?赋值即可
-
导出函数使其子进程也可以使用 export -f funtionName
-
子shell
cmd=$(cat a.txt)
cmd=`cat a.txt`
echo $cmd
-
终端输入
-
read -n 2 value
仅仅读取2个字符 -
read -p "tips" value
提示信息tips -
read -t 5 value
限时输入 -
字符串分割
#!/bin/bash data="hello,my,name,is,primerKG" IFS=, #使用IFS算法,将分割字符设置为 , 逗号 (IFS默认值是空白字符) for item in $data do echo items: $item done
分割/etc/passwd,查找用户对应使用的shell
#!/bin/bash # function: get user shell by IFS string cat data="root:x:0:0:root:/root:/bin/bash" IFS=: index=0 for item in $data do # echo $item; [ $index -eq 0 ] && user=$item; [ $index -eq 6 ] && shell=$item; let index++; done echo "$user used shell is $shell" echo "end" #知识点 # cmd1 && cmd2 当且仅当cmd1执行成功的时候才执行cmd2 # cmd1 || cmd2 不管cmd1是否执行成功,都要执行cmd2 # [] 条件判断,语句和方括号之间需要有一个空格 # let 进行算术逻辑运算 # IFS=: 设置分隔符符号
-
循环
-
for item in list ; do ... done
-
for((i = 0 ; i <10;i++)){}
-
while condition do ... done
-
until [condition]; do... done
-
比较
-
if condition then ... else ... fi
-
if condition then ... elif condition ... then... else... fi
-
字符串比较: 使用双中括号 [[ str1== str2 ]]
-
操作符
-gt 大于 -lt 小于 -ge 大于等于 -le 小于等于 -eq 等于 -a 逻辑与&& -o 逻辑或|| -f 是否存在文件或路径 -x 是否文件可执行 -d 是否是目录 -e 是否文件存在 -c 是否是字符文件 -b 是否是设备文件 -w 是否可写文件 -r 是否可读文件 -L 是否是符号链接
-
cat拼接
-
cat -n 输出行号
-
显示