bash脚本语法学习

学习网站:Shell 脚本教程 - Shell 脚本教程 (shellscript.sh)

基本格式

1、Shebang(#!)行:这是脚本文件的第一行,用来指定解释器的路径。在Bash脚本中通常是 #!/bin/bash,表示使用Bash作为解释器。例如:

#!/bin/bash

2、注释:以 # 开头的行表示注释,用来解释和说明脚本中的代码。

3、变量定义:在Bash中,变量的定义不需要显式声明类型,直接赋值即可。例如:

NAME="John"
AGE=30

4、命令执行:可以直接在脚本中执行命令,并将结果赋给变量或者直接输出。例如:

CURRENT_DATE=$(date +%Y-%m-%d)
echo "Today's date is $CURRENT_DATE"

5、控制结构:Bash支持常见的控制结构,如条件判断和循环。

  • 条件判断
if [ condition ]; then
    # statements
fi
  • 循环
#for循环
for item in list; do
    # statements
done
#while循环
while condition
do
    # commands
done
#until循环 条件不满足时执行
until condition
do
    # commands
done
#select循环
PS3="Select a fruit: "
select fruit in Apple Orange Banana Exit
do
    case $fruit in
        Apple)
            echo "You selected Apple."
            ;;
        Orange)
            echo "You selected Orange."
            ;;
        Banana)
            echo "You selected Banana."
            ;;
        Exit)
            echo "Exiting."
            break
            ;;
        *)
            echo "Invalid option."
            ;;
    esac
done

6、函数定义:可以定义和使用函数来组织和重用代码块。例如:

function greet {
    echo "Hello, $1!"
}

greet "World"

7、退出状态码:脚本执行完毕后可以通过 exit 命令指定退出状态码。通常,0 表示成功,非零值表示错误。

8、文件权限:在使用Bash脚本时,需要确保脚本文件具有执行权限。可以使用 chmod +x script.sh 命令添加执行权限。

变量使用

1、变量的定义和赋值

在Bash中,变量的定义不需要显式声明类型,直接通过赋值来创建变量。

NAME="John"
AGE=30

2、变量的引用

可以使用 $ 符号来引用变量的值。在变量名后面直接跟着 $ 符号,Bash会替换成变量的值。

echo "My name is $NAME"
echo "I am $AGE years old"

3、变量替换和扩展

在Bash中,有多种方式可以对变量进行替换和扩展,以满足不同的需求。

  • 花括号扩展:使用花括号 {} 可以明确变量名的边界,有助于在变量名后面直接添加字符。
GREETING="Hello"
echo "${GREETING}, World!"
  • 变量默认值:可以使用 ${VAR:-default} 语法来设定变量的默认值,如果变量未定义或为空,则使用默认值。
# 如果NAME未定义或为空,则使用默认值 "Guest"
echo "Hello, ${NAME:-Guest}"
  • 变量存在时使用:使用 ${VAR:+value} 语法,仅当变量存在且非空时,才使用指定的值。
# 如果NAME存在且非空,则添加问候
echo "Hello, ${NAME:+$NAME}"
  • 字符串长度:使用 ${#VAR} 可以获取变量的长度。
STR="Hello, World!"
echo "Length of STR is ${#STR}"

4、命令替换

可以将命令的输出结果赋给变量,使用 $() 或者反引号 `` 来执行命令,并将结果赋给变量。

CURRENT_DATE=$(date +%Y-%m-%d)
echo "Today's date is $CURRENT_DATE"

5、使用特殊变量

Bash 中有一些特殊变量,如 $0, $1, $@, $* 等,用于访问脚本自身的参数和命令行参数。

echo "Script name: $0"
echo "First argument: $1"
echo "All arguments: $@"

6、只读变量

可以使用 readonly 命令将变量定义为只读,不允许修改其值。

readonly MYVAR="This is read-only"

7. 删除变量

使用 unset 命令可以删除变量。

unset MYVAR
  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值