shell bash中设置命令set

📅 发布时间:2026/8/28 13:41:22
shell bash中设置命令set
1 Preface/Forewordset命令用于shell脚本在执行命令时候遇到异常的处理机制。2 Usage2.1 set -e当执行命令过程中遇到异常那么就退出脚本不会往下执行其它命令。#!/bin/bash#set -erootGIT_TAG${CI_BUILD_TAG-NOTAG}GIT_REV$(git rev-parse --short HEAD)GIT_DATE$(date %y%m%d -d$(git show -s --format%ct HEAD))CI_PIPELINE_ID${CI_PIPELINE_ID-0}if [ $GIT_TAG NOTAG ]; thenAPP_FIRMWARE_VERSION${GIT_TAG}-${GIT_DATE}-${CI_PIPELINE_ID}-${GIT_REV}elseAPP_FIRMWARE_VERSION${GIT_TAG}fiecho -n ${APP_FIRMWARE_VERSION}NOTE遇到命令错误仍然会继续往下执行。#!/bin/bashset -erootGIT_TAG${CI_BUILD_TAG-NOTAG}GIT_REV$(git rev-parse --short HEAD)GIT_DATE$(date %y%m%d -d$(git show -s --format%ct HEAD))CI_PIPELINE_ID${CI_PIPELINE_ID-0}if [ $GIT_TAG NOTAG ]; thenAPP_FIRMWARE_VERSION${GIT_TAG}-${GIT_DATE}-${CI_PIPELINE_ID}-${GIT_REV}elseAPP_FIRMWARE_VERSION${GIT_TAG}fiecho -n ${APP_FIRMWARE_VERSION}NOTE遇到错误直接退出。2.2 set -x (调试模式)set -x: 脚本在运行过程中看到每一行命令本身被打印出来不仅仅是运行结果shell会在执行每条命令前将其打印到标准错误输出stderr并以开头。#! /bin/bash set -x MACRO1MOTO_MODULE1 MACRO2BLUETOOTH_MODULE1 MACRO3LED_MODULE1 MACRO$MACRO1 $MACRO2 $MACRO3 echo exit shell script bash!!! echo $MACRO echo $MACRO echo make -f test.mk Tlist $MACRO make -f test.mk Tlist $MACRO echo run_makemake -f test.mk Tlist $MACRO $run_make echo make -f test.mk Tlist $MACRO运行结果2.3 set x (关闭调试模式)