一篇学会 Shell 脚本基本使用

本文介绍了Bash Shell的基础用法,包括echo命令、变量赋值、读取用户输入、if条件语句、for和while循环、case语句以及函数的定义和使用。此外,还展示了如何进行文件状态检查和文件操作。通过实例,读者可以快速掌握Bash Shell的基本语法和常用操作。
摘要由CSDN通过智能技术生成

Linux的Shell种类很多。本篇文章关注的是Bash,其全称是Bourne Again Shell。
以下是一些非常基础的用法。

  • echo命令,用于向窗口输出文本
echo Hello World!
  • 命名一个变量。
    $ : 这个符号是用来引用变量的。
    引用变量时,加大括号与不加大括号效果是一样的。
DIY_NAME="撇目双人聿"
# echo "My name is $DIY_NAME"
echo "My name is ${DIY_NAME}"
  • 处理控制台输入
echo "Enter your name: "
read NAME
echo "Hello $NAME, nice to meet you!"
  • 简单的if语句
    这里要注意的是左中括号后面以及右中括号前面一定要有一个空格。
NAME="撇目双人聿"
if [ "$NAME" == "撇目双人聿" ]
then
  echo "Your name is 撇目双人聿"
fi
  • if-else语句
NAME="小明"
if [ "$NAME" == "撇目双人聿" ]
then
  echo "Your name is 撇目双人聿"
else
  echo "Your name is NOT 撇目双人聿"
fi
  • else-if语句
NAME="小明"
if [ "$NAME" == "撇目双人聿" ]
then
  echo "Your name is 撇目双人聿"
elif [ "$NAME" == "小明" ]
then
  echo "Your name is 小明"
else
  echo "Your name is NOT 撇目双人聿 or 小明"
fi
  • 比较大小的表示
NUM1=3
NUM2=5
if [ "$NUM1" -gt "$NUM2" ]
then
  echo "$NUM1 大于 $NUM2"
else
  echo "$NUM1 小于 $NUM2"
fi
# 符号
# -eq: 如果值1与值2相等 返回 true
# -ne: 如果值1与值2不相等 返回 true
# -gt: 如果值1大于值2 返回 true
# -ge: 如果值1大于或等于值2 返回 true
# -lt: 如果值1小于值2 返回 true
# -le: 如果值1小于或等于值2 返回 true
  • 文件的状态
FILE_NAME="test.txt"
if [ -f "$FILE_NAME" ]
then
  echo "$FILE_NAME 是一个文件"
else
  echo "$FILE_NAME 不是一个文件"
fi

# 查看文件各种状态的符号
# -d “filename”  如果该文件是一个目录返回 true
# -e “filename”  如果存在该文件返回 true
# -f “filename”  如果提供的字符串是一个文件返回 true
# -r “filename”  如果该文件是可读的返回 true
# -s “filename”  如果该文件不为空返回 true
# -u “filename”  如果该文件设置了用户id返回 true
# -w “filename”  如果该文件是可写的返回 true
# -x “filename”  如果该文件是可执行的返回 true
  • case 语句
read -p "你学会Shell脚本了吗 Y/N " ANSWER
case "$ANSWER" in
    [yY] | [yY][eE][sS])
        echo "恭喜你,你真棒! :)"
        ;;
    [nN] | [nN][oO])
        echo "那请继续努力吧!"
        ;;
     *)
        echo "请输入:Y/y or N/n"
        ;;
esac
  • for循环语句
FRUITS="苹果 香蕉 葡萄 西瓜 梨"
for FRUIT in $FRUITS
do
  echo "Hello $FRUITS"
done
  • for循环例子: 批量重命名文件名
FILES=$(ls *.txt)
NEW="new"
for FILE in $FILES
do
  echo "重命名 $FILE 为 new-$FILE"
  mv $FILE $NEW-$FILE
done
  • while循环, 例如:一行一行读取文件内容
LINE=1
while read -r CURRENT_LINE
do 
  echo "$LINE: $CURRENT_LINE"
  ((LINE++))
done < "./new-1.txt"
  • 定义并使用一个不带参数的简单函数
# 定义一个名为sayHello的函数
function sayHello() {
  echo "Hello World"
}
# 调用sayHello函数
sayHello
  • 定义并使用一个带参数的函数
# 定义一个名为greet的函数
function greet() {
  echo "你好, 我叫 $1,今年 $2 岁"
}
# 使用函数,只需要在后面带上参数即可
# 注意每个参数要以空格区分,不然会被识别成一个参数
greet "小明" "25"
  • 创建一个文件夹并写入一个内容到一个文件
mkdir hello
touch "hello/world.txt"
echo "Hello World" >> "hello/world.txt"
echo "Create hello/world.txt!"

网上有非常多的教程可以进一步了解。
有不懂的地方可以去多查教程。
这个网站里面的内容简洁易懂:https://www.shellscript.sh

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值