shell编写踩过的坑
1、linux在shell中执行命令并将结果赋值给变量
#通过端口号获取容器名称
container_name=`docker ps |grep "$port" |awk -F "[ ]+" '{print $NF}'`
2、if判断
if [ ! container_name ];then
运行时报 [!: not found 的错误,if判断那块有个坑, if后面加空格,条件两边也得加空格。
3、同一脚本,以sh+脚本名,bash+脚本名运行,结果不一样
/bin/sh与/bin/bash虽然大体上没什么区别,但仍存在不同的标准。标记为#!/bin/sh的脚本不应使用任何POSIX没有规定的特性 (如let等命令, 但#!/bin/bash可以)。Debian曾经采用/bin/bash更改/bin/dash,目的使用更少的磁盘空间、提供较少的功能、获取更快的速度。但是后来经过shell脚本测试存在运行问题。因为原先在bash shell下可以运行的shell script (shell 脚本),在/bin/sh下还是会出现一些意想不到的问题,不是100%的兼用
浙公网安备 33010602011771号