• 关于 linux 中if 的搜索结果

问题

linux中tcp的send调用能够保证原子性吗?

a123456678 2019-12-01 20:00:16 955 浏览量 回答数 1

回答

#!/bin/sh #FileName:deleteDir.sh #Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除且目录下目录名和文件名中没有空格) #Version:V0.1 #Author:Sunrier #Date:2012-08-01 CURRPATH=$PWD #DESTPATH为删除的目标目录(目标目录本身不会删除) DESTPATH="/home/Sunrier/Trash" #isNullDir函数判断进入的目录下是否存在下级子目录或者文件 #存在返回1,不存在返回0 isNullDir() { local NewCurrentPath=$PWD local NewDirName=$1 cd $NewDirName local NewFileList=`ls 2>/dev/null` # -n string : 如果字符串不为空,则结果为真 if [ -n "$NewFileList" ] then echo "目录$NewDirName下列表信息为$NewFileList" cd $NewCurrentPath return 1 else echo "目录$NewDirName为空目录" cd $NewCurrentPath return 0 fi } if [ "Sunrier" != "$LOGNAME" ] then echo "您没有执行权限!请联系管理员!" exit 1 fi cd $DESTPATH 2>/dev/null if [ $? -ne 0 ] then echo "没有找到目标目录!" exit 1 fi echo "您正准备删除的目录为$DESTPATH" #不考虑隐藏目录和文件 FileList=`ls 2>/dev/null` while [ "" != "$FileList" ] do echo "当前列表信息为 $FileList" for pFile in $FileList do echo "加载 ${pFile} 中......" if [ -d "${pFile}" ] then echo "检查到 ${pFile} 为目录 " echo "目录 ${pFile} 处理中......" 注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假! if isNullDir "${pFile}" then echo  "删除目录 ${pFile} 中......" rm -rf ${pFile} else echo "移动目录${pFile}下的所有目录和文件中......" mv ${pFile}/* . >/dev/null 2>&1 if [ $? -ne 0 ] then ModifyTime=`date +%Y%m%d%H%M%S` mv ${pFile} $ModifyTime fi fi else echo "检查到 ${pFile} 为文件 " echo "正在把文件 ${pFile} 的文件名更改为文件名 1 中......" mv ${pFile} 1 2>/dev/null fi if [ -f 1 ] then echo "发现文件名为1的文件,正在删除文件1中......" echo "123456"> 1 rm -rf 1 fi done echo "更新新的文件列表中......" cd $DESTPATH FileList=`ls 2>/dev/null` done if [ $? -eq 0 ] then echo "清理成功!" cd $CURRPATH exit 0 else echo "清理失败!" cd $CURRPATH exit 1 fi [cpp] view plain copy 注:去掉一些显示信息 #!/bin/sh #FileName:deleteDir.sh #Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除且目录下目录名和文件名中没有空格) #Version:V0.2 #Author:Sunrier #Date:2012-08-27 CURRPATH=$PWD #DESTPATH为删除的目标目录(目标目录本身不会删除) DESTPATH="/home/Sunrier/Trash" #isNullDir函数判断进入的目录下是否存在下级子目录或者文件 #存在返回1,不存在返回0 isNullDir() { local NewCurrentPath=$PWD local NewDirName=$1 cd $NewDirName local NewFileList=`ls 2>/dev/null` # -n string : 如果字符串不为空,则结果为真 if [ -n "$NewFileList" ] then cd $NewCurrentPath return 1 else cd $NewCurrentPath return 0 fi } if [ "Sunrier" != "$LOGNAME" ] then echo "您没有执行权限!请联系管理员!" exit 1 fi cd $DESTPATH 2>/dev/null if [ $? -ne 0 ] then echo "没有找到目标目录!" exit 1 fi echo "您正准备删除的目录为$DESTPATH" #不考虑隐藏目录和文件 FileList=`ls 2>/dev/null` while [ "" != "$FileList" ] do for pFile in $FileList do echo "加载 ${pFile} 中......" if [ -d "${pFile}" ] then #注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假! if isNullDir "${pFile}" then rm -rf ${pFile} else mv ${pFile}/* . >/dev/null 2>&1 if [ $? -ne 0 ] then ModifyTime=`date +%Y%m%d%H%M%S` mv ${pFile} $ModifyTime fi fi else mv ${pFile} 1 2>/dev/null fi if [ -f 1 ] then echo "123456">1 rm -rf 1 fi done cd $DESTPATH FileList=`ls 2>/dev/null` done if [ $? -eq 0 ] then echo "清理成功!" cd $CURRPATH exit 0 else echo "清理失败!" cd $CURRPATH exit 1 fi //解决目录下目录名和文件名中含有空格的情况 [cpp] view plain copy #!/bin/sh #FileName:deleteDir.sh #Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除) #Version:V0.3 #Author:Sunrier #Date:2012-08-29 CURRPATH=$PWD #DESTPATH为删除的目标目录(目标目录本身不会删除) DESTPATH="/home/Sunrier/Trash" #isNullDir函数判断进入的目录下是否存在下级子目录或者文件 #存在返回1,不存在返回0 isNullDir() { local NewCurrentPath=$PWD local NewDirName=$1 cd "$NewDirName" local NewFileList=`ls 2>/dev/null` # -n string : 如果字符串不为空,则结果为真 if [ -n "$NewFileList" ] then echo "目录$NewDirName下列表信息为$NewFileList" cd $NewCurrentPath return 1 else echo "目录$NewDirName为空目录" cd $NewCurrentPath return 0 fi } if [ "Sunrier" != "$LOGNAME" ] then echo "您没有执行权限!请联系管理员!" exit 1 fi cd $DESTPATH 2>/dev/null if [ $? -ne 0 ] then echo "没有找到目标目录!" exit 1 fi echo "您正准备删除的目录为$DESTPATH" #不考虑隐藏目录和文件 #FileList=`ls 2>/dev/null` FileList=`ls | tr " " "?" 2>/dev/null` while [ "" != "$FileList" ] do echo "当前列表信息为 $FileList" for pFile in $FileList do echo "加载 ${pFile} 中......" if [ -d "${pFile}" ] then echo "检查到 ${pFile} 为目录 " echo "目录 ${pFile} 处理中......" #注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假! if isNullDir "${pFile}" then echo  "删除目录 ${pFile} 中......" rm -rf "${pFile}" else echo "移动目录${pFile}下的所有目录和文件中......" mv "${pFile}"/* . >/dev/null 2>&1 if [ $? -ne 0 ] then echo "发现父目录与子目录同名,试图更改父目录目录名......" ModifyTime=`date +%Y%m%d%H%M%S` mv "${pFile}" $ModifyTime fi fi else echo "检查到 ${pFile} 为文件 " echo "正在把文件 ${pFile} 的文件名更改为文件名 1 中......" mv "${pFile}" 1 2>/dev/null fi if [ -f 1 ] then echo "发现文件名为1的文件,正在删除文件1中......" echo "123456" > 1 rm -rf 1 fi done echo "更新新的文件列表中......" cd $DESTPATH #FileList=`ls 2>/dev/null` FileList=`ls | tr " " "?" 2>/dev/null` done if [ $? -eq 0 ] then echo "清理成功!" cd $CURRPATH exit 0 else echo "清理失败!" cd $CURRPATH exit 1 fi //去掉一些显示信息 [cpp] view plain copy #!/bin/sh #FileName:deleteDir.sh #Function:Linux下使用Shell脚本删除一个目录下的所有子目录和文件(不可恢复删除) #Version:V0.4 #Author:Sunrier #Date:2012-08-29 CURRPATH=$PWD #DESTPATH为删除的目标目录(目标目录本身不会删除) DESTPATH="/home/Sunrier/Trash" #isNullDir函数判断进入的目录下是否存在下级子目录或者文件 #存在返回1,不存在返回0 isNullDir() { local NewCurrentPath=$PWD local NewDirName=$1 cd "$NewDirName" local NewFileList=`ls 2>/dev/null` # -n string : 如果字符串不为空,则结果为真 if [ -n "$NewFileList" ] then cd $NewCurrentPath return 1 else cd $NewCurrentPath return 0 fi } if [ "Sunrier" != "$LOGNAME" ] then echo "您没有执行权限!请联系管理员!" exit 1 fi cd $DESTPATH 2>/dev/null if [ $? -ne 0 ] then echo "没有找到目标目录!" exit 1 fi echo "您正准备删除的目录为$DESTPATH" #不考虑隐藏目录和文件 FileList=`ls | tr " " "?" 2>/dev/null` while [ "" != "$FileList" ] do for pFile in $FileList do echo "加载 ${pFile} 中......" if [ -d "${pFile}" ] then #注:在Linux的Shell脚本中,调用函数作为判断条件时,函数返回值为0时,if后的条件才为真;否则if后的条件为假! if isNullDir "${pFile}" then rm -rf "${pFile}" else mv "${pFile}"/* . >/dev/null 2>&1 if [ $? -ne 0 ] then ModifyTime=`date +%Y%m%d%H%M%S` mv "${pFile}" $ModifyTime fi fi else mv "${pFile}" 1 2>/dev/null fi if [ -f 1 ] then echo "123456" > 1 rm -rf 1 fi done cd $DESTPATH FileList=`ls | tr " " "?" 2>/dev/null` done if [ $? -eq 0 ] then echo "清理成功!" cd $CURRPATH exit 0 else echo "清理失败!" cd $CURRPATH exit 1 fi

杨冬芳 2019-12-02 03:05:58 0 浏览量 回答数 0

问题

linux中prelink.conf文件中的-l参数的意义?

a123456678 2019-12-01 20:02:37 931 浏览量 回答数 1

试用中心

为您提供0门槛上云实践机会,企业用户最高免费12个月

问题

Linux中awk工具关于if语句的问题

云栖技术 2019-12-01 19:43:48 924 浏览量 回答数 1

问题

如何仅使用linux系统调用将两个文件合并为第三个文件?

祖安文状元 2020-01-07 13:59:17 0 浏览量 回答数 1

问题

linux下正则表达式的用法,以字符开头,且包含某单词的表达式怎么写?

a123456678 2019-12-01 19:59:55 1225 浏览量 回答数 1

问题

【春招必备】初级程序员必备Linux面试题

黄一刀 2020-03-12 19:15:24 7487 浏览量 回答数 4

问题

Linux网络编程 epoll中EPOLLIN EPOLLOUT信号无法触发

杨冬芳 2019-12-01 20:23:42 1024 浏览量 回答数 1

问题

linux c:这个代码有什么问题?行读取和缓冲读取:报错

kun坤 2020-06-07 22:32:57 0 浏览量 回答数 1

问题

window下按回车键输入的是\n, 还是\n\r (2)window文本中换行符号是\n,还是\n\r

云栖技术 2019-12-01 19:41:28 1308 浏览量 回答数 1

问题

(1)window下按回车键输入的是\n, 还是\n\r (2)window文本中换行符号是\n,还是\n\r

杨冬芳 2019-12-01 20:20:26 991 浏览量 回答数 1

回答

处理办法 要解决此问题,请进行如下配置检查: 通过 SSH 客户端或 管理终端 登录服务器。通过 cat 等指令查看异常登录模式,对应的 PAM 配置文件。说明如下:文件 功能说明/etc/pam.d/login 控制台(管理终端)对应配置文件/etc/pam.d/sshd 登录对应配置文件/etc/pam.d/system-auth 系统全局配置文件注:每个启用了 PAM 的应用程序,在 /etc/pam.d 目录中都有对应的同名配置文件。例如,login 命令的配置文件是 /etc/pam.d/login,可以在相应配置文件中配置具体的策略。 检查前述配置文件中,是否有类似如下配置信息:auth required pam_succeed_if.so uid >= 1000如果需要修改相关策略配置,在继续之前建议进行文件备份。使用 vi 等编辑器,修改相应配置文件中的上述配置,或者整个删除或注释(在最开头添加 # 号)整行配置,比如:auth required pam_succeed_if.so uid <= 1000 # 修改策略 auth required pam_succeed_if.so uid >= 1000 #取消相关配置 尝试重新登录服务器。如果还有问题,可以参阅云服务器 ECS Linux SSH 无法登录问题排查指引做进一步排查分析。

元芳啊 2019-12-02 00:37:05 0 浏览量 回答数 0

问题

关于Linux中的dup2()

小旋风柴进 2019-12-01 19:41:54 1294 浏览量 回答数 1

问题

【教程免费下载】跟老男孩学Linux运维: Shell编程实战

知与谁同 2019-12-01 22:07:43 1702 浏览量 回答数 0

问题

Linux epoll 使用过程中的疑问,请专家给予指点一下

云栖技术 2019-12-01 19:41:29 1138 浏览量 回答数 1

问题

求 linux 标准 C 语言判断2个字符串的一个函数

a123456678 2019-12-01 20:28:45 911 浏览量 回答数 1

问题

in_array()和多维数组

保持可爱mmm 2020-01-16 15:43:48 1 浏览量 回答数 1

回答

问题描述 登录Linux系统的ECS实例时,输入正确的用户名和密码后,也无法正常登录。该问题出现时,管理终端或SSH客户端其中一种方式可以正常登录,或者两种方式均无法正常登录,查看secure日志提示如下错误信息。 pam_succeed_if(sshd:auth): requirement "uid >= 1000" not met by user "root". 问题原因 PAM相关模块的策略配置,禁止了UID小于1000的用户进行登录。 解决方案 阿里云提醒您: 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。 本文相关配置及说明已在CentOS 6.5 64位操作系统中进行过测试。其它类型及版本操作系统配置可能有所差异,具体情况请参阅相应操作系统的官方文档。 通过SSH客户端或管理终端登录服务器。 通过cat命令查看异常登录模式,对应的PAM配置文件,请参考如下信息。 文件 功能说明 /etc/pam.d/login 控制台(管理终端)对应配置文件 /etc/pam.d/sshd 登录对应配置文件 /etc/pam.d/system-auth 系统全局配置文件 注:每个启用PAM的应用程序,在/etc/pam.d目录中都有对应的同名配置文件。例如,login命令的配置文件是/etc/pam.d/login,可以在相应配置文件中配置具体的策略。检查前述配置文件中,是否有类似如下配置信息。 auth required pam_succeed_if.so uid >= 1000 使用vi编辑器,修改相应配置文件中的配置,整行删除或在段落前添加#号注释,请参考如下信息。 注:修改相关的策略配置之前,建议先将文件备份。 auth required pam_succeed_if.so uid <= 1000 # 修改策略 auth required pam_succeed_if.so uid >= 1000 #取消相关配置 尝试重新登录服务器。 相关文档 若还有问题,请参考如下文档,做进一步的排查和分析。 云服务器 ECS Linux SSH 无法登录问题排查指引

1934890530796658 2020-03-25 23:12:55 0 浏览量 回答数 0

问题

为什么SSH 登录时出现如下错误:requirement &quot;uid &gt;= 1000&quot; not met by user &quot;root&quot;

boxti 2019-12-01 21:59:29 2092 浏览量 回答数 0

问题

awk脚本将目录路径作为输入并显示所有大小超过限制的文件?

祖安文状元 2020-01-05 19:06:16 0 浏览量 回答数 1

回答

window可以用这个%ERRORLEVEL%判断,如果等于零就是正常退出,具体可以百度,或在cmd中输入:if/? linux可以用$?判读,这有详细说明 http://blog.miniasp.com/post/2010/10/04/Windows-Batch-ERRORLEVEL-and-Linux-Bash-Exit-Status.aspx 应该是说JVM吧? 给你找了个方法。 http://www.crazysquirrel.com/computing/java/basics/java-shutdown-hooks.jspx packageexample;publicclassShutdownHook{/***@paramargs*/publicstaticvoidmain(String[]args){Hookhook=newHook();System.out.println("RunningMainApplication...");Runtime.getRuntime().addShutdownHook(hook);System.out.println("Exiting.");}privatestaticclassHookextendsThread{publicvoidrun(){System.out.println("RunningCleanUp...");}}}

爱吃鱼的程序员 2020-06-22 13:57:29 0 浏览量 回答数 0

问题

loadPropertyFile函数拼装路径的一点想法?报错

爱吃鱼的程序员 2020-06-22 14:10:22 0 浏览量 回答数 1

回答

Linux内核栈溢出(stack overflow)问题 最近一段时间在设计和开发一个Linux内核模块,进入到最后的正确性测试与稳定性测试阶段。在这个阶段发现了一个非常有意思的问题,堆栈溢出(stack overflow)。Linux内核堆栈溢出之后直接导致了系统kernel Panic。由于导致stack overflow的原因是递归调用导致的,所以,最后通过调试串口导出的kernel panic信息很快就定位问题所在了,否则这样的问题还真是很难调试和发现。通过这次bug,我们应该记住的是:Linux内核stack资源是有限的,而递归调用将大量消耗stack资源,因此在内核编程中尽量少用递归算法,否则将会导致出乎意料的一些问题。依次类推,为了减少stack资源的消耗,程序的局部变量定义的不要太大,否则也将会消耗大量stack资源,从而导致内核程序的不稳定。 为了解决递归调用导致的问题,我将递归算法改写成了非递归算法,解决了stack overflow的问题。在此介绍一下递归算法改写成非递归算法的一些思想。在项目实现过程中,需要对IO请求进行按顺序排队,因此采用了效率较高并且实现简单的快速排序算法,该算法是一种分治算法,即将排序队列进行切分,分解成一系列的小问题进行求解,针对这种问题,很容易采用递归的办法进行实现,伪代码描述如下: /* qs_sort实现从小到大的排序 */ Struct bio qs_sort(struct bio_list *list_head, struct bio *bio_tail) { Struct bio_list *less_list, *large_list; Struct bio *middle_bio; /* 递归调用结束点,小问题求解完毕,直接返回最后一个元素 */ If (!list_head) { Return bio_tail; } /* 对队列进行切分,选择一个middle_bio,并且按照middle_bio将其切分成less_list队列和large_list队列 */ Split_list(list_head, less_list, large_list, &middle_bio); /* 采用递归的方法实现大队列的排序操作 */ Middle_bio->bi_next = qs_sort(large_list, bio_tail); /* 采用递归的方法实现小队列的排序操作 */ Return qs_sort(less_list, middle_bio); }

liujae 2019-12-02 01:24:29 0 浏览量 回答数 0

回答

登录CDN控制台,下载日志文件,日志相关字段说明请参日志下载。 上传日志文件至本地Linux系统服务器。 登录本地Linux系统服务器,执行如下命令,查询状态为200的所有记录并输出至指定的文件中。 grep -w "200" [$Log_Txt] |awk '{if($9=="206") print $0}' > 200log.txt 注:[$Log_Txt]为下载的日志文件。 执行如下命令,取文件中的某一列。 cat [$Log_Txt] |awk '{print $12}' 执行如下命令,计算日志中responsesize。 cat [$Log_Txt] |awk 'BEGIN {size=0} {size=size+$11} END{print "endsizeis",size/1024/1024,"M"} ' 执行如下命令,查询访问量前十的IP。 cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -10

保持可爱mmm 2020-03-30 15:29:39 0 浏览量 回答数 0

回答

登录CDN控制台,下载日志文件,日志相关字段说明请参日志下载。 上传日志文件至本地Linux系统服务器。 登录本地Linux系统服务器,执行如下命令,查询状态为200的所有记录并输出至指定的文件中。 grep -w "200" [$Log_Txt] |awk '{if($9=="206") print $0}' > 200log.txt 注:[$Log_Txt]为下载的日志文件。 执行如下命令,取文件中的某一列。 cat [$Log_Txt] |awk '{print $12}' 执行如下命令,计算日志中responsesize。 cat [$Log_Txt] |awk 'BEGIN {size=0} {size=size+$11} END{print "endsizeis",size/1024/1024,"M"} ' 执行如下命令,查询访问量前十的IP。 cat [$Log_Txt] | awk '{print $3}' |sort|uniq -c|sort -nr |head -10

保持可爱mmm 2020-03-30 14:55:50 0 浏览量 回答数 0

问题

Discuz使用阿里云ossFtp工具实现后台化

多维度 2019-12-01 21:24:06 3963 浏览量 回答数 2

问题

嵌入式qt蜂鸣器问题

杨冬芳 2019-12-01 20:24:56 993 浏览量 回答数 1

问题

为什么同一节点下windows的mysql比linux连接服务要快

zhangmeng 2019-12-01 21:00:53 8199 浏览量 回答数 0

问题

关于android代码中调用可执行文件的

爵霸 2019-12-01 19:53:59 1078 浏览量 回答数 1

问题

求助各位大神,是LINUX下关于tail实现的

杨冬芳 2019-12-01 20:21:59 915 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播