文章目录
基本语法
基于语法
awk(分割命令返回值)
- 基本语法:
- 默认
awk
不加参数时,默认以空格为分割符; -
awk -F “:”
(以:
为分隔符); - 需要注意的是:如果有多行的输出,那么awk会默认处理多行信息,如果需要指定某一行,可以继续往下看
sed
指令;
- 默认
echo xxxx | awk '{print $n}' # 第一个xxxx部分是命令行打印出来的东西,第二个n是指打印空格分割后的第几个内容
-
Example
:
# 以:为分隔符,并打印第部分元素
echo "a:b:c:d" | awk -F ":" '{print $1}'
# 以空格为分隔符,并打印第2部分元素
echo "a:b c:d" | awk '{print $2}'
# 默认处理多行信息,如果需要指定某一行,需要加上sed指令,可以继续往下看
gpustat | awk '{print $1}'
sed(处理行内容)
- 基本语法:
- 取出某一行内容:
sed -n 'xp'
,x
是指指定的行数,从1开始计数,第一行即为1;
- 取出某一行内容:
command sed -n 'xp' # 这里的command是指能返回多行信息的命令
-
Example
:
# 取出第一行内容
gpustat | sed -n '1p'
分别取出指定行内容:
融合正则指令
- 取出第1行以空格为分割的第2个单元内容:
# 命令 第一行 以空格为分割的第2个单元内容
command | sed -n '1p' | awk '{print $2}'
-
Example
:
gpustat | sed -n '1p' | awk '{print $2}' # 取出第1行第2个内容,Sun
gpustat | sed -n '2p' | awk '{print $7}' # 取出第2行第7个内容,89°
完了它居然降温了,本来应该是89°的QAQ…
条件语句
条件判断符
-
数字比较条件:比较两个整数谁大谁小,是否相等;
-
-eq
:等于 -
-ne
:不等于 -
-le
:小于等于 -
-ge
:大于等于 -
-lt
:小于 -
-gt
:大于
-
用if
条件举例使用方法:
if [ num1 compare num2 ]
then
xxx # do something
fi
# example 1:
if [ 1 -lt 2 ]
then
echo "1 < 2"
fi
1. if
- 基本语法:
if condition
then
xxx # do something
fi
-
Example
:
if true
then
echo "if I love you"
fi
2. while
- 基本语法:
while condition
do
xxx
if condition2
then
break # 退出while循环
fi
done
-
Example
:
while true
do
echo "I love you"
if true
then
break
fi
done
额外方法
在脚本中使用命令行指令并获取返回值
- 需要注意的是:在使用该命令时,最好返回值是个数字或者较易处理的字符串或表格;
var=$(command) # var为command命令的返回值
# 需要注意的点:
# 1. =不能有空格
# 2. command需要用$()的形式包起来
首先在命令行中直接执行命令查看结果:
ps -ef | grep python | grep -c train.py
随后我们在bash文件中使用该命令获取返回值:
num_process=$(ps -ef | grep python | grep -c train.py) #
echo "num_process is $num_process"
延时
sleep second # 此处填写秒数
# 例子
sleep 5 # 等待5s
打印当前时间
- 可以放在脚本中或者直接在命令行输入:
echo $(date +%Y-%m-%d\ %H:%M:%S)
参考文章:
标签:fi,echo,sed,awk,Linux,print,返回值,用法,Bash From: https://blog.51cto.com/u_15906550/5921698