awk
不加参数时,默认以空格为分割符;awk -F “:”
(以:
为分隔符);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 -n 'xp'
,x
是指指定的行数,从1开始计数,第一行即为1;command sed -n 'xp' # 这里的command是指能返回多行信息的命令
Example
:# 取出第一行内容
gpustat | sed -n '1p'
分别取出指定行内容:
# 命令 第一行 以空格为分割的第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 ]
thenxxx # do something
fi# example 1:
if [ 1 -lt 2 ]
thenecho "1 < 2"
fi
if condition
thenxxx # do something
fi
Example
:if true
thenecho "if I love you"
fi
while condition
do xxxif condition2thenbreak # 退出while循环fi
done
Example
:while true
doecho "I love you"if truethenbreakfi
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)
参考文章: