linux的shell脚本中,如何通过until循环实现 当本目录下存在restart文件夹的时候进行循环呢?

如题所述

可以使用ls或者find来完成对某个文件夹下所有文件的遍历
比如使用ls
可以简单地使用一个通配符来完成
ls 某个目录/*

也可以使用find来完成
比如
find 某个目录

自然的也可以写一个shell脚本来进行遍历
首先进行一个要遍历的文件夹
然后循环查看每个文件
如果该文件是一个文件夹的话则进入该文件夹做和上面相同的事件
这样就可以该整个文件夹内的所有文件进行遍历了
一个简单的代码如下
#!/bin/bash

function show()
{
cd $1

for i in `ls`
do
if [ -d "$i" ]
then
show "$i"
else
echo "$i"
fi
done

cd ..
}

show $1

exit 0

该程序不能遍历以.开头的隐藏文件
可以使用ls -a来进行遍历隐藏文件
遍历时需要注意.和..这两个特殊文件

下面是一个简单的代码
#!/bin/bash

function show()
{
cd $1

for i in `ls -a`
do
if [ "$i" == "." ] || [ "$i" == ".." ]
then
continue;
fi

if [ -d "$i" ]
then
show "$i"
else
echo "$i"
fi
done

cd ..
}

show $1

exit 0追问

不是这个意思啦!只是希望做个服务器自动重启功能,检测到本目录下有restart文件夹就自动循环,然后又这样开服了。

温馨提示:内容为网友见解,仅供参考
无其他回答

UNTILLINUX SHELL脚本中的直到型循环
首先,我们引入"until"关键字,后面紧跟着一个条件语句:until 这里的是循环的终止条件,脚本会一直执行循环体内的命令,直到这个条件为真。具体步骤如下:在'until'关键字后,紧接着的是一个代码块,用' do '开始,' done '结束,这部分被称为循环体:do 这里的可以是任何你需要在循环中执行的命令...

linux如何用Shell编写脚本获取进程目录下的cwd路径和exe路径
!\/bin\/bash process=`ps aux | grep chromium | grep -v grep | awk '{print $2}'`i=1 while true do pid=`echo $process | cut -d ' ' -f$i`if [[ $pid -eq null ]]then break fi ls \/proc\/$pid echo ' '((i++))done ...

linux shell脚本:while循环中调用另一个脚本遇到exit为什么会跳出循环...
exit是在被调用的脚本里面,肯定会退出被调用的脚本了。如果不想继续执行while循环后面的程序可以在do后面的条件上加上break

Linux | shell脚本-条件判断if和循环语句for
Shell循环结构语句分为for、while和until三种。其中,while和for属于“当型循环”,直到型循环。for循环的语法如下:for 变量名 in 变量值列表 do 循环体 done 例如输出1-254之间的所有偶数,计数并输出数量。循环结构的应用使得Shell脚本的编写更加灵活,具备自动执行特定操作的机制。预告下一期内容:将深入...

在linux下编写shell脚本,判断当前目录下所有文件类型,如果是普通文件...
for file in *do if [ -f "$file" ] then if [ -s "$file" ] then printf "File:$file\\n" cat "$file" else rm "$file" fi else [ -d "$file" ] printf "Directory:$file\\n" ls "$file" fi printf "\\n\\n\\n"done ...

linux中的shell脚本创建文件夹,若文件夹存在,则删除重新创建,若不存在...
if判断时 [ ]与里面的语句要有个空格:if [ -d "$dire" ]; then 修改后测试已通过.这个脚本是在windows下写的么?如果是, 需要注意换行符的问题.

Linux中,shell脚本如何使用信号机制去控制线程的开启关闭
trap是Linux的内建命令,用于捕捉信号,trap命令可以指定收到某种信号时所执行的命令。trap命令的格式如下:trap command sig1 sig2 ... sigN,当接收到sinN中任意一个信号时,执行command命令,command命令完成后继续接收到信号前的操作,直到脚本结束。 利用trap命令捕捉INT信号(即与Ctrl+c绑定的中断...

linux shell 遍历文件夹 并将结果保存 到变量
" && exit 1[ ! -d $1 ] && echo "$1 not path" && exit 1dir=$1dir_p="$dir Directory :"cd $dirdir=`pwd`for i in `ls $dir`do if [ -d $i ]; then \/tmp\/sh\/dir_file $i #我的脚本文件在\/tmp\/sh中,需要改一下这里 else dir_p="$dir_p File ...

linux 的 shell脚本编程中,如何确保一条指令指令执行成功了之后再进行下...
通常可以根据返回值来判断。\\x0d\\x0a不过还有一点就是要注意,就是make install要管理员权限才行。\\x0d\\x0a\\x0d\\x0amake clean && make && make install\\x0d\\x0a\\x0d\\x0a就可以了。\\x0d\\x0a你试试吧。

如何在linux中使用shell脚本遍历指定目录的文件,将创建时间大于指定时 ...
大于指定时间?最简单的就是直接find里面指定吧。例如,查找当前目录及其子目录所有mtime大于1天的文件:find \/path -type f -mtime +1 即可,\/path 可以换成其他路径,-mtime +1 表示时间大于1天。-1的话表示小于一天也就是1天之内的。

相似回答