linux-shell中的逻辑判断

本文详细介绍了Linux Shell脚本中的参数传递,包括非交互式和交互式的传参方式,以及$0到$@等特殊变量的用法。接着讲解了如何创建和使用函数,特别是如何实现循环输入名字的功能。接着,文章探讨了for循环的不同使用场景,如遍历列表和计数。最后,讨论了条件语句,包括while、until和if…then…fi的用法,以及在脚本中如何检查文件状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.脚本中的传参

非交互模式下:从shell中向脚本内部传参。
$0 :脚本本身名称
$1 :脚本后输入的第一串字符
$2 :脚本后输入的第二串字符
$3 :脚本后输入的第三串字符
$* :脚本后输入的所有字符 (eg: “apple banana orange”)
$# :脚本后输入的字符串个数
$@ :脚本后输入的所有字符 (eg: “apple” “banana” “orange”)
交互式传参:
read -p “。。。。。” 变量 -p 后跟字符,字符后跟变量名。
read -p "input: " hello (hello 为变量名)
echo $hello
在这里插入图片描述

2.函数

除去重复的部分:
#!/bin/bash
action()
{
if “$1”==“exit” &&{
exit
} || {
read -p "input your name: " name
echo $name
action
}
}
action
循环输入名字,直到输入exit退出循环。

3.for语句

for :定义变量
do :做事
done :结束
示例:for WESTOS in java linux c
do
echo $WESTOS
sleep 1
done
显示:java linux c
for ((num=0;num<10;num++))
do
echo $num
done
示例:用脚本检测10台与当前主机连接的主机网络是否通畅,如果网络通畅显示主机ip列表。
#!/bin/bash
for ip in 172.25.254.{10…20}
do
ping -c1 -w1 $ip &> /dev/null && {
echo $ip >> file
}
done

4.条件语句

1.while…do :条件为真执行动作
while
do
done
while true
do
read -p "input num: " num
[ “$num” = “exit” ] && {
exit
} ||
echo $num
done

2.until…do :条件为假执行动作
3.if…then :条件判断语句
if [ -L “$1” ] ## 可以多次判断语句
then
echo “$1 is link file”
elif [ -d " $1" ]
then
echo “$2 is dir”
else ## 所有判断都不成立
echo unknown
fi
示例
check_file.sh
要求:input: file “file is not exist” “file is a file” " file is a direcory" 此脚本会一直执行直到用户输入exit退出。
ACTION(){
read -p "input: " file

[ "$file" = "exit" ] && {
	exit
} || {

[ -e "$file" ] || {
	echo $file is not exist
	}
[ -f "$file" ] && {
	echo " $file is file"
	}
[ -d "$file" ] && {
	echo " $file is dir"
	}
}
ACTION

}
ACTION

contiue :终止此次循环进入下一个循环
break :终止当前循环
exit :退出脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值