Skip to content

shell脚本入门

echo 命令

-n:echo输出的文本末尾会有一个回车符。-n参数可以取消末尾的回车符 -e-e参数会解释引号(双引号和单引号)里面的特殊字符(比如换行符\n)

shift 命令

改变脚本参数,每次执行都会移除脚本当前的第一个参数($1),使得后面的参数向前一位

shell
#!/bin/bash

echo "一共输入了 $# 个参数"
while [ "$1" != "" ]; do
  echo "剩下 $# 个参数"
  echo "参数:$1"
  shift
done

exit 命令

终止当前脚本的执行,并向 Shell 返回一个退出值

  • exit 0: 退出值为0(成功退出)
  • exit 1: 退出值为1(失败退出)
shell
#!/bin/bash

if [ $(id -u) != "0" ]; then # id -u命令返回用户的 ID,一旦用户的 ID 不等于0(根用户的 ID)就退出
  echo "root用户才能执行当前脚本"
  exit 1
fi

TIP

return命令是函数的退出,并返回一个值给调用者,脚本依然执行。exit是整个脚本的退出

执行结果返回值

命令执行结束后,会有一个返回值。0表示执行成功,非0(通常是1)表示执行失败; $?为0表示上一条命令执行成功

shell
#!/bin/bash
cd /path/to/somewhere
if [ "$?" = "0" ]; then
  rm *
else
  echo "无法切换目录!" 1>&2
  exit 1
fi

简写

shell
#!/bin/bash

cd /path/to/somewhere && rm *

cd /path/to/somewhere || exit 1

source 命令

source命令可用于执行一个脚本,但通常用于重新加载一个配置文件

  • 简写形式,可以使用一个点(.)来表示:. .bashrc

source命令的另一个用途,是在脚本内部加载外部库

shell
#!/bin/bash

source ./lib.sh # 引入外部库,可以调用外部库的函数

function_from_lib

alias 别名

用来为一个命令指定别名

  • 调用alias命令,可以显示所有别名
  • unalias命令可以解除别名
shell
#!/bin/bash
alias today='date +"%A, %B %-d, %Y"'
today # 直接调用命令,而不是使用 echo $today输出
# Thursday, May 26, 2022