首页 > 系统相关 >linux的shell脚本和基本语法

linux的shell脚本和基本语法

时间:2024-05-05 23:11:35浏览次数:31  
标签:bin do shell sum echo 语法 参数 linux done

一、特殊变量
$n(n代表0以上的正整数,代表参数位)
$? 脚本执行状态,0代表执行成功,其他值代表执行失败。
$# 获取传入参数的个数,常用于循环
$* 所有的参数视为一个整体
$@ 代表所有参数,每个参数分隔开

二、运算符
i=[ (1+1)*2 -5/2 ]

三、条件判断

  1. test condition
  2. [ condition ] "["必须要空格,不然会语法错误

在shell中,“空”为假,“非空”为真,即 [ ] 返回false,[ xx ]返回true

(一)常用条件判断
== 用于字符串之间的比较,[ "abc" == "aBC" ]
数字比较
-lt 小于 -le小于等于
-eq等于 -ne不等于
-ge大于等于 -gt大于

(二)按照文件权限判断
[ -e xxx文件 ] 判断文件是否存在
-r 有读权限
-w 有写权限
-x 有执行权限

三、流程控制语句

(一)if语句

!/bin/bash

if [ 1 -eq $1 ]
then
echo "1和第一个参数相等"

elif [ 2 -eq $1 ]
then
echo "2和第一个参数相等"
else
echo "1和2都不和第一个参数相等"
fi

(二)case语句

!/bin/bash

case $1 in
"1")
echo "第一个参数等于1"
;;
"2")
echo "参数等于2"
;;
"3")
echo "参数等于3"
;;
*)
echo "所有条件都不匹配"
esac

(三)for循环语句

!/bin/bash

sum=0
for ((i=0;i<5;i++))
do
echo "Hello World $i"
done

sum=0
for ((i=1;i<=100;i++))
do
sum=$[$i+$sum]
done
echo $sum

!/bin/bash

for i in "$*"
do
echo $i
done

for i in "$@"
do
echo $i
done

(四)while循环

!/bin/bash

i=0
while [ $i -le 5 ]
do
echo "Hello World $i"
i=$[ $i+1 ]
done

i=1
sum=0
while [ $i -le 100 ]
do
$sum=$[ $i+$sum ]
i=$[ $i+1 ]
done

标签:bin,do,shell,sum,echo,语法,参数,linux,done
From: https://www.cnblogs.com/velloLei/p/18174027

相关文章

  • linux 进程通信之信号量
    信号量Linux函数semget();semctl();semop();信号量三个函数头文件#include<sys/sem.h>intsemget(key_t_key,int_nsems,int_semflg);intsemctl(int_semid,int_semnum,int_cmd……);intsemop(intsemid,structsembuf*_sops,size_t_nsops);se......
  • linux lvm2卷 创建、备份与恢复
    自动快照snapper下载文档:https://documentation.suse.com/zh-cn/sles/12-SP5/html/SLES-all/cha-snapper.html查看存储信息有人吐槽btrfs不稳定,所以还是老办法吧:lvm2-ext4建议现在虚拟机内练习一下,再上实机。u盘用ventoy烧录(多系统支持),进入linux的iso镜像,打开控制台liveuse......
  • ADS安装教程(Linux)
    在linux服务器中,创建安装目录,这里选择的安装目录为/opt/ADSsudomkdir/opt/ADS解压安装包文件tar-xvfads......tarunzipPathWave.....zip运行安装命令sudo./SETUP.SH在安装过程中,需要输入安装目录,填选之前创建的目录/opt/ADS直接安装即可在软件使用过程中,licens......
  • Linux设置cp命令显示进度条
    1、前言实现原理:重新安装cp、mv命令,显示进度条测试环境:Centos7.6查看当前系统下的coreutils工具包的版本rpm-qa|grep-wcoreutils当前版本8.222、下载coreutils安装包不需要太新,8.32即可wgethttp://ftp.gnu.org/gnu/coreutils/coreutils-8.32.tar.xz3、下载补丁......
  • Linux 发行版选择
    简介要建立云服务器,首先需要安装操作系统。在现代环境中,几乎所有情况下都是指Linux操作系统。从历史上看,Windows服务器和其他类型的Unix在特定的商业环境中都很流行,但现在几乎每个人都在运行Linux,这是因为Linux支持广泛、许可免费或灵活,而且在服务器计算领域总体上无处不......
  • Matlab安装教程(Linux)
    解压安装包在虚拟机中,文件直接通过拖拽文件的方式将安装包拉入虚拟机时,文件通常存放在/tmp/VMwareDnD中,因此需要将存放文件位置的文件转移到/home/<用户名>/<存放目录>中参考命令如下:mv/tmp/VMwareDnD/<文件存放目录>/*/home/<用户名>/<存放目录>之后在存放压缩包的目录中,......
  • Linux基础
    目录一、Linux系统介绍二、Linux文件系统介绍三、什么是路径1、绝对路径2、相对路径3、特殊路径四、终端的使用技巧五、Linux系统命令1、常用的命令2、文件相关的命令3、目录相关的命令4、网络相关的命令5、其它命令六、通配符、管道、重定向1、通配符*代表任意多个字符?代表一......
  • Linux 下使用 NetLink 检测设备的热插拔
    一、简单介绍下NETLINK    netlink套接字是用以实现用户进程与内核(2.6.24之后的版本)进程通信的一种特殊的进程间通信(IPC),也是网络应用程序与内核通信的最常用的接口。二、为什么能用NETLINK检测设备热插拔    当我们的设备从主机上进行拔插时,内核会通过netlin......
  • Linux 输出重定向 2>&1 , 1>&2
    在shell程式中,最常使用的FD(filedescriptor)大概有三个,分别是:0是一个文件描述符,表示标准输入(stdin)1 是一个文件描述符,表示标准输出(stdout)2 是一个文件描述符,表示标准错误(stderr)在标准情况下,这些FD分别跟如下设备关联: stdin(0):keyboard键盘输入,并返回......
  • Linux 使用 inotify 监控文件或目录变化
    转载:https://www.cnblogs.com/PikapBai/p/14480881.html作者:PikapBai 1运行环境#操作系统:Ubuntu182inotify简介#inotify是一个Linux内核特性(监视文件系统事件),它用于监控文件系统,比如删除、读、写操作等,当发生对应事件时,则会触发inotify。当监控目录时,与该目录......