shell
1 年前
· 来自专栏
你要学习深度不学习
1、符号
2、grep使用
(1)grep输出的值赋值给变量,shell逻辑非(或者)的判断,和if-else
#!/bin/bash
#my=`grep -c 'print' views_test.py`
#echo $my
#echo $my
strA="helloworld"
strB="lowp"
strC="help"
strD="rldp"
if [[ $strA =~ $strB || $strA =~ $strC || $strA =~ $strD ]];
echo "包含"
echo "不包含"
fi
(2)|grep判断返回是否为空
xml_path=`grep -l -F -i 'yes' "${i}"`
if [ -z $xml_path ]
if [ $? == 1 ]
判断不为空
if [ ! -z $xml_path ]
if [ $? == 0 ]
对于grep 的返回结果 -n 与 ! -z 并不是一回事,也就是判断 不为空时 使用 -n 不准确。
(3)grep返回值
grep 返回值问题
1、取grep命令的返回值(进程的返回值)
其中grep返回 0 1 或者 -1
即取1 0 或者-1放入一个变量中
var=`apache2 -v | grep Apache` // 将grep名命令的结果保存到变量var中
echo $var
echo $var | grep Apache // 使用grep搜索变量var中是否含有 Apache子串
value=$? // 将grep的返回值保存到value变量中
echo $value # 输出返回值的结果
2、获得grep命令的输出(即打印在标准输出上的内容):
var=`apache2 -v | grep Apache` // 将grep命令的结果保存到变量var中
echo $var
3、下面是一个判断是否搜到结果并进行不同处理的程序:
apache2 -v | grep Apache
echo "apache2 已安装:"
apache2 -v
echo "no"
fi
3、shell脚本中if基本使用方法
shell脚本中if基本使用方法_qimingstack的博客-CSDN博客_shell脚本中if用法
4、练习
shell编程100例_野狼-CSDN博客_shell脚本编程100例
5、脚本交互
6、python写shell并获取结果
# a = os.system('date') # 这样的话a只会输出一个0,因为os.system只会返回一个操作结果
out_gpu = os.popen('nvidia-smi -L') # 查看有多少可用的GPU,os.popen会将结果进行赋值
gpu_numbers = len(out_gpu.readlines()) # 检测GPU的数量 或者是 a = out_gpu.read() a = a.splitlines()
out_gpu.close()
# 或者使用subprocess模块,但是获取输出结果就需要进行解码
out_gpu = subprocess.Popen('nvidia-smi -L', stdout=subprocess.PIPE, stderr=subprocess.PIPE或subprocess.STDOUT, shell=True) # 查看有多少可用的GPU,os.popen会将结果进行赋值
print(out_gpu)
a = out_gpu.stdout.readlines()
print(a[0][:3].decode('utf-8'))
7、linux 下shell中if的“-e,-d,-f”是什么意思
linux 下shell中if的“-e,-d,-f”是什么意思
Shell 中的中括号用法总结
8、判断上一个命令是否执行成功
shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。
结合if-else语句实现判断上一个命令是否执行成功。
if [ $? -ne 0 ]; then
echo "failed"
echo "succeed"