导航:首页 > 编程语言 > shell编程中的判断

shell编程中的判断

发布时间:2022-11-16 04:28:34

❶ shell编程中使用IF判断

都正确
-ne是比较数字
!= 是比较字符串

if判断分为三种条件判断,整数判断,字符串判断。

❷ shell编程,输入一个字符串,判断是否是数字。

read a

if [[ $a =~ /-?[0-9][0-9.]+/]] ; then

echo “$a is num”

fi

或:

|read -p "请输入一个字符串" str

if echo "$str"|shugrep "[a-zA-Z]" >/dev/null &&echo "$str"|grep "[0-9]" >/dev/null

then

echo "yes"

else

echo "no"

fi

(2)shell编程中的判断扩展阅读:

字符串在存储上类似字符数组,它每一位单个元素都是能提取的,字符串的零位是它的长度,如s[0]=10,这提供给我们很多方便,例如高精度运算时每一位都能转化为数字存入数组。

通常以串的整体作为操作对象,如:在串中查找某个子串、求取一个子串、在串的某个位置上插入一个子串以及删除一个子串等。两个字符串相等的充要条件是:长度相等,并且各个对应位置上的字符都相等。设p、q是两个串,求q在p中首次出现的位置的运算叫做模式匹配。串的两种最基本的存储方式是顺序存储方式和链接存储方式。

❸ 用SHELL编程问题,如何判断文件类型

应该是bash吧:脚本的写法是这样的:file_name=xxxxxxxif [ -d $file_name ]
then
echo "directory"
else
echo "not a directory"
fi 下面是全部参数,里面就有你需要的:-a file exists.
-b file exists and is a block special file.
-c file exists and is a character special file.
-d file exists and is a directory.
-e file exists (just the same as -a).
-f file exists and is a regular file.
-g file exists and has its setgid(2) bit set.
-G file exists and has the same group ID as this process.
-k file exists and has its sticky bit set.
-L file exists and is a symbolic link.
-n string length is not zero.
-o Named option is set on.
-O file exists and is owned by the user ID of this process.
-p file exists and is a first in, first out (FIFO) special file or
named pipe.
-r file exists and is readable by the current process.
-s file exists and has a size greater than zero.
-S file exists and is a socket.
-t file descriptor number fildes is open and associated with a
terminal device.
-u file exists and has its setuid(2) bit set.
-w file exists and is writable by the current process.
-x file exists and is executable by the current process.
-z string length is zero.

❹ shell判断文件,目录是否存在或者具有权限

#!/bin/sh
myPath="/var/log/httpd/"
myFile="/var /log/httpd/access.log"
#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限
if [ ! -x "$myPath"]; then
mkdir "$myPath"
fi
#这里的-d 参数判断$myPath是否存在
if [ ! -d "$myPath"]; then
mkdir "$myPath"
fi
#这里的-f参数判断$myFile是否存在
if [ ! -f "$myFile" ]; then
touch "$myFile"
fi
#其他参数还有-n,-n是判断一个变量是否是否有值
if [ ! -n "$myVar" ]; then
echo "$myVar is empty"
exit 0
fi
#两个变量判断是否相等
if [ "$var1" = "$var2" ]; then
echo '$var1 eq $var2'
else
echo '$var1 not eq $var2'
fi
========================================
shell 判断语句
流程控制 "if" 表达式 如果条件为真则执行then后面的部分: if ....; then
....
elif ....; then
....
else
....
fi
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件是否存在及是否可读等等… 通常用" [ ] "来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
[ -f "somefile" ] :判断是否是一个文件
[ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
[ -n "$var" ] :判断$var变量是否有值
[ "$a" = "$b" ] :判断$a和$b是否相等 -r file用户可读为真
-w file用户可写为真
-x file用户可执行为真
-f file文件为正规文件为真
-d file文件为目录为真
-c file文件为字符特殊文件为真
-b file文件为块特殊文件为真
-s file文件大小非0时为真
-t file当文件描述符(默认为1)指定的设备为终端时为真
######################################################### 含条件选择的shell脚本
对于不含变量的任务简单shell脚本一般能胜任。但在执行一些决策任务时,就需要包含if/then的条件判断了。shell脚本编程支持此类运算,包 括比较运算、判断文件是否存在等。基本的if条件命令选项有: -eq —比较两个参数是否相等(例如,if [ 2 –eq 5 ])
-ne —比较两个参数是否不相等
-lt —参数1是否小于参数2
-le —参数1是否小于等于参数2
-gt —参数1是否大于参数2
-ge —参数1是否大于等于参数2
-f — 检查某文件是否存在(例如,if [ -f "filename" ])
-d — 检查目录是否存在
几 乎所有的判断都可以用这些比较运算符实现。脚本中常用-f命令选项在执行某一文件之前检查它是否存在。 ################################################################## 判断文件是否存在 #!/bin/sh
today=`date -d yesterday +%y%m%d`
file="apache_$today.tar.gz"
cd /home/chenshuo/shell
if [ -f "$file" ];then
echo "OK"
else
echo "error $file" >error.log
mail -s "fail backup from test" [email protected] <error.log
fi

❺ Shell编程中 if语句判断时怎样写判断条件判断变量a若为整型变量则执行后面的语句

把if [ "$tt" ~ '/^[1-9][0-9]*$/' ] 改成
if [ "$tt" -le 0 -o "$tt" -ge 0 ] 2>/dev/null

这边是只会做整数的比较,如果$tt不是整数就会产生错误信息,并不比较。然后执行else后面的动作。产生的错误信息可以用2>/dev/null丢掉。

如果是整数则进行[]内的比较,中间的-o表示或者,意思是整数$tt小于等于0或者大于等于0则为真,执行then后面的动作

❻ 编写一个简单的shell程序,判断系统中是否存在,如果存在将其删除

编写一个简单的shell程序,要求如下:
一:这个shell必须支持以下内部命令:
1.cd<directory>--把当前目录改变为<directory>,如果没有<directory>参数,则显示当前目录。如果该目录不存在,则给出错误提示。这个命令可以用来改变PWD环境变量。
2.clr--清屏。
3.dir<directory>--列出目录<directory>的内容。
4.environ--列出所有的环境变量。
5.echo<comment>--在屏幕上显示<comment>并换行。
6.help--显示用户手册,并且使用more命令过滤。
7.pause--停止shell直到按下回车。
8.quit--退出shell。
9.shell的环境变量应该包含shell=<pathname>/myshell,其中<pathname>/myshell是可执行程序shell的完整路径。
二:其他的命令行被解释为程序调用,,shell创建并执行这个程序,并作为自己的子进程,程序的环境变量必需包含以下条目:
parent=<pathname>/myshell,
三:shell必须能够从文件中提取命令行输入,例如shell使用以下命令行被调用:
programname arg1 arg2 <inputfile> outputfile
四:shell必须支持i/o重定向,stdin和stdout或其中之一。例如命令行为
programname arg1 arg2 <inputfile> outputfile
使用arg1和arg2执行程序programname,输入文件流被替换为inputfile,输出文件流被替换为outputfile。
stdout重定向应该支持以下内部命令:dir,environ,echo和help。
使用输出重定向是,如果重定向字符是>,则创建输出文件,如果存在则覆盖之;如果重定向字符为 >>则也会创建输出文件,如果存在则添加到文件 尾。
五:shell必需支持后台程序执行。如果在命令行后面添加字符&,在加载完程序后需要立刻返回命令行提示符。
六:命令行提示符必需包含当前路径。

❼ shell编程(条件判断举例)

shell 是操作系统的最外层。shell 合并编程语言以控制进程和文件,以及启动和控制其它程序。shell 通过提示您输入,向操作系统解释该输入,然后处理来自操作系统的任何结果输出来管理您与操作系统之间的交互。
外文名
shell
类别
操作系统
应用
编程技术
常见
在ARM技术里有很广的应用
快速
导航
实现方法

编程步骤

常用技巧

编程过程

课程大纲
基本概述
shell 提供了与操作系统通信的方式。此通信以交互的方式(来自键盘的输入立即操作)或作为一个 shell 脚本执行。shell 脚本是 shell 和操作系统命令的序列,它存储在文件中。
当登录到系统中时,系统定位要执行的 shell 的名称。在它执行之后,shell 显示一个命令提示符。普通用户的此提示符通常是一个 $(美元符)。当提示符下输入命令并按下 Enter 键时,shell 对命令进行求值,并尝试执行它。取决于命令说明,shell 将命令输出写到屏幕或重定向到输出。然后它返回命令提示符,并等待您输入另一个命令。
命令行是输入所在的行。它包含 shell 提示符。每行的基本格式如下:
$ 命令参数(一个或多个)
shell 视命令行的第一个字(直到第一个空白空格)为命令,所有后继字为自变量。
在Windows环境下,不论是使用Visual C++还是Delphi或是其他一些软件开发工具开发的应用程序,尽管存在着差别,但有一点是相同的:都是运行于Windows操作系统之下的。在程序开发过程中也经常要在自己的应用程序中加入一些Windows系统本身就有的功能,比如文件的拷贝、删除、查找以及运行程序等等。而这些功能在Windows操作系统下都是具备的,显然如果能直接从系统中调用这些功能将不仅仅减少程序的大小和开发人员的工作量,而且由于是直接通过操作系统来完成这些功能,将会大大减小这部分程序出现异常错误的概率。Windows系统虽说也存在不少错误,但常用功能的错误还是比较少的,而且通过补丁程序可以更低限度减少系统错误,因此程序员可以将调试检错的注意力放在应用程序的其他地方,对于调用系统功能这部分代码则可以不必投入太大的精力去调试,因为这部分调试的工作在操作系统发布的时候就已经由微软做好了。本文通过外壳编程,实现了搜寻文件、运行程序、控制工具条、最大最小化窗口的功能。
实现方法
前面所说的直接使用Windows操作系统部分功能的编程方法就是针对Windows操作系统外壳的编程,可以通过对操作系统提供的几个编程接口对操作系统的部分功能进行调用,甚至可以按照自己的意图在应用程序中对部分功能进行修改、扩展。但这方面的资料介绍不是特别多,讲的也大都语焉不详,而且用通常的编程方法去进行外壳编程是非常麻烦的,动辄就要对相关的结构对象进行设置,而这样的结构里的数据成员少则十来个多则几十个,因此配置起来非常烦琐,下面就以一个比较简单的外壳操作--拷贝文件进行举例说明:
……
SHFILEOPSTRUCT FileOp; //外壳的文件操作结构
FileOp.hwnd=m_hWnd; //设置句柄
//设置操作方式,拷贝用FO_COPY,删除用 FO_DELETE
FileOp.wFunc=FO_COPY;
FileOp.pFrom=m_source; //源文件路径
FileOp.pTo=m_detect; //目标文件路径
FileOp.fFlags=FOF_ALLOWUNDO; //允许恢复
FileOp.hNameMappings=NULL;
FileOp.lpszProgressTitle=strTitle; //设置标题
SHFileOperation(&FileOp); //执行外壳拷贝
if(FileOp.fAnyOperationsAborted) //监测有无中止
TRACE("An Operation was aborted!!!\n");
……
谢谢

linux shell编程中怎么判断时间相等

#!/bin/bash#格式化过期日期,格式化过期日期完整时间以当前时间作为参考!expday="2018-04-11 `date +%T`"echo "Expire day is $expday"#当前日期时间格式为stamp时间戳todays=`date +%s`echo "Today is $(date +"%F %T")"#以下2种方式做时间的四则运算,分别使用 let 或者 $(( ))#过期日期已格式化,规避整数运算的误差(去余数)#let dayDiff=($(date -d "$expday" +%s)-$todays)/86400dayDiff=$(( ($(date -d "$expday" +%s)-$todays)/86400 ))echo "Diff day is $dayDiff days!"

其余说明:
bash 不支持浮点运算,如果需要进行浮点运算,需要借助bc,awk 处理。Linux命令需求的话可如下图进行查询

❾ 如何编写shell 判断字符串为空

主要有以下几种方法:
echo “$str”|awk '{print length($0)}'
expr length “$str”
echo “$str”|wc -c
但是第三种得出的值会多1,可能是把结束符也计算在内了

判断字符串为空的方法有三种:
if [ "$str" = "" ]
if [ x"$str" = x ]
if [ -z "$str" ] (-n 为非空)
注意:都要代双引号,否则有些命令会报错,养成好习惯吧!

❿ shell编程中有关时间的判断

先用date +%p 看返回结果,根据结果去改变下面的条件语句,也许你不是返回“下午”而是返回“PM”,因为这个和你机器的环境变量有关(如英文中文等)根据结果去判断:
/////看date +%p返回结果:
[root@ftptest2 ~]# date +%p
下午
////程序如下:
[root@ftptest2 ~]# cat test.sh
#!/bin/sh
what=`date +%p`
if [ "$what" == "上午" ]
then
echo "good moring"
else
echo "good afternoon"
fi

////程序运行如下:
[root@ftptest2 ~]# ./test.sh
good afternoon

阅读全文

与shell编程中的判断相关的资料

热点内容
液压油可压缩吗 浏览:944
源泉cad加密文件 浏览:123
银河v10驱动重编译 浏览:889
电脑上文件夹右击就会崩溃 浏览:689
右美维持算法 浏览:938
php基础编程教程pdf 浏览:219
穿越之命令与征服将军 浏览:351
android广播重复 浏览:832
像阿里云一样的服务器 浏览:318
水冷空调有压缩机吗 浏览:478
访问日本服务器可以做什么 浏览:433
bytejava详解 浏览:450
androidjava7 浏览:385
服务器在山洞里为什么还有油 浏览:887
天天基金app在哪里下载 浏览:975
服务器软路由怎么做 浏览:293
冰箱压缩机出口 浏览:229
OPT最佳页面置换算法 浏览:645
网盘忘记解压码怎么办 浏览:853
文件加密看不到里面的内容 浏览:654