当前位置: 首页 > article >正文

SHELL脚本2(Linux网络服务器 23)

利用test检查文件权限

描述:输入一个已存在的文件名,检查该文件是否具有读写执行的权限。如果文件不存在要给予提醒。

#!/bin/bash
echo -e "Please input a filename,I will check the filename's type and perimission.\n\n"
read -p "Input a filename: " filename
test -z $filename && echo "You Must input a filename." && exit 0
test ! -e $filename && echo "The filename '$filename' Do Not exit" && exit 0
#判断文件类型和属性
test -f $filename && filetype="regulare file"
test -d $filename && filetype="directory"
test -r $filename && perm="readable"
test -w $filename && perm="$perm writeable"
test -x $filename && perm="$perm executable"

echo "The filename: $filename is a $filetype"
echo "And the permissions are: $perm"

&& 和 || 在脚本中的应用

描述:在终端输入Y或N(y或n),提示是结束或者继续,输入的非Y、y、N、n,提示我不知道您选择的是什么。

#!/bin/bash
read -p "Please input (Y/N): " yn
[ "$yn" == "Y" -o "$yn" == "y" ] && echo "OK,continue" && exit 0
[ "$yn" == "N" -o "$yn" == "n" ] && echo "Oh,break" && exit 0
echo "I don't know what your choice is." && exit 0

条件语句
  • if …then …fi

语法:

if [条件判断式];then

当条件判断式成立时,可以进行的命令工作内容;

fi 将if反过来写,就是fi了,结束if的意思

案例:修改上述例子

#!/bin/bash
read -p "Please input (Y/N): " yn
if [ "$yn" == "Y" ] || [ "$yn" == "y" ]; then
    echo "OK, continue"
    exit 0
fi
if [ "$yn" == "N" ] || [ "$yn" == "n" ] ; then
    echo "oh, break"
    exit 0
fi
echo "I don't know what your choice is." && exit 0
  • if …then …else…fi

语法:

if [条件判断式];then

当条件判断式成立时,可以进行的命令工作内容;

else

当条件判断成立时,可以进行的命令工作内容;

fi

#!/bin/bash
read -p "请输入您的名字: " name
if [ "$name" != "" ]; then
    echo "您的名字是:$name"
    exit 0
else
    echo "您还没有输入自己的名" && exit 0
fi


http://www.kler.cn/a/420727.html

相关文章:

  • Day 32 动态规划part01
  • Linux中的 tail 命令
  • mybatis-plus 对于属性为null字段不更新
  • Creating Server TCP listening socket *:6379: bind: No error
  • HCIE IGP双栈综合实验
  • HTML5动漫主题网站——天空之城 10页 html+css+设计报告成品项目模版
  • 如何运用Java爬虫获得1688商品详情数据
  • 架构03-事务处理
  • YunSDR通信小课堂-10
  • 扩展欧几里得——acwing
  • dify接入ollama模型报错:max retries exceeded with url
  • Java的反射(Reflection)
  • AWTK fscript 中的 串口 扩展函数
  • Linux:systemd进程管理【1】
  • 如何在vue中禁用eslint检查?
  • Nextjs 前端设置正向代理 解决 跨域问题
  • GaussDB(类似PostgreSQL)常用命令和注意事项
  • springboot整合flowable工作流
  • 入门算法 二 递归
  • 用postgresql实现数组中的模糊字符串查询
  • 【C++】程序流程控制(中)
  • Linux系统 进程
  • 大模型开发和微调工具Llama-Factory-->安装
  • Unity下载文件断点续下
  • K8S疑难概念理解——Pod,应该以哪种Kind来部署应用,为什么不直接Pod这种kind?
  • 【Elasticsearch】04-RestAPI