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

(4) shell 判断字符串中是否含有指定字符

3、shell脚本中if基本使用方法

shell脚本中if基本使用方法_qimingstack的博客-CSDN博客_shell脚本中if用法

4、练习

shell编程100例_野狼-CSDN博客_shell脚本编程100例

5、脚本交互

在 Shell 脚本中进行交互的一些心得

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"