01-script

1. ()、(())、[]、[[]]、{}

2. $()

3. $0、$?、$!、$$、$*、$#、$@

4. dirname

#!/bin/sh

# 当前文件绝对路径
echo $0

# 当前文件所在文件夹绝对路径
echo $(dirname $0)

# 文件所在目录的上级目录
echo $(
  cd $(dirname $0)/..
  pwd
)

# /Users/listao/Desktop/work/nacos/bin/startup1.sh
# /Users/listao/Desktop/work/nacos/bin
# /Users/listao/Desktop/work/nacos

1. usage: dirname path

image-20220405230707657

5. echo

echo -e "\033[31m----------------------------------------------------------- \033[0m"

# 字体颜色:30m-37m 黑、红、绿、黄、蓝、紫、青、白
str="kimbo zhang"
echo -e "\033[30m ${str}\033[0m"      # 黑色字体
echo -e "\033[31m ${str}\033[0m"      # 红色
echo -e "\033[32m ${str}\033[0m"      # 绿色
echo -e "\033[33m ${str}\033[0m"      # 黄色
echo -e "\033[34m ${str}\033[0m"      # 蓝色
echo -e "\033[35m ${str}\033[0m"      # 紫色
echo -e "\033[36m ${str}\033[0m"      # 青色
echo -e "\033[37m ${str}\033[0m"      # 白色

# 背景颜色:40-47 黑、红、绿、黄、蓝、紫、青、白
str="kimbo zhang"
echo -e "\033[41;37m ${str} \033[0m"     # 红色背景色,白色字体
echo -e "\033[41;33m ${str} \033[0m"     # 红底黄字
echo -e "\033[1;41;33m ${str} \033[0m"   # 红底黄字 高亮加粗显示
echo -e "\033[5;41;33m ${str} \033[0m"   # 红底黄字 字体闪烁显示
echo -e "\033[47;30m ${str} \033[0m"     # 白底黑字
echo -e "\033[40;37m ${str} \033[0m"     # 黑底白字

6. export

  • Linux export 命令open in new window
  • 在shell中执行程序时,shell会提供一组环境变量。export可新增、修改、删除环境变量,供后续执行的程序使用。export的效力仅限于该次登陆操作

7. test

1. 文件测试

-e 文件名如果文件存在则为真
-r 文件名如果文件存在且可读则为真
-w 文件名如果文件存在且可写则为真
-x 文件名如果文件存在且可执行则为真
-s 文件名如果文件存在且至少有一个字符则为真
-d 文件名如果文件存在且为目录则为真
-f 文件名如果文件存在且为普通文件则为真
-c 文件名如果文件存在且为字符型特殊文件则为真
-b 文件名如果文件存在且为块特殊文件则为真

2. 变量是否为空

  1. 变量通过" "引号引起来
#!/bin/sh
para1=
if [ ! -n "$para1" ]; then
  echo "IS NULL"
else
  echo "NOT NULL"
fi
  1. 直接通过变量判断
#!/bin/sh
para1=
if [ ! $para1 ]; then
  echo "IS NULL"
else
  echo "NOT NULL"
fi
  1. 使用test判断
#!/bin/sh
dmin=
if test -z "$dmin"
then
  echo "dmin is not set!"
else
  echo "dmin is set !"
fi
  1. 使用""判断
#!/bin/sh
dmin=
if [ "$dmin" = "" ]
then
  echo "dmin is not set!"
else
  echo "dmin is set !"
fi