Ⅰ shell批量執行多個shell腳本
把多個shell腳本的執行命令和必要的參數,分行寫入一個腳本文件中,加上日誌輸出。
Ⅱ shell腳本實現統計目錄下(包括子目錄)所有文件的個數
在shell終端中輸入下列命令:
#在當前目錄生成腳本文件countfile
cat>countfile<<SCRIPT
#!/bin/sh
find"$@"-typef|
wc-l
SCRIPT
#為腳本添加許可權
chmod+xcountfile
#執行用例
./countfile~
Ⅲ shell批量執行不同目錄下的多個sh文件的寫法
按照你的說法,需要首先遍歷你需要的文件,然後用一個for循環來執行
遍歷的話還需要知道你的腳本文件有什麼通用的地方,比如都叫elasticsearch
那還是通過find來找
find . -type f -name elasticsearch*
Ⅳ 如何運行文件夾中的所有shell腳本
foriin*.sh;dobash$i;done;
Ⅳ linux shell腳本怎麼獲取目錄下所有txt文件名稱
執行如下三條命令即可:
(1)、$script myresultfile
(2)、$ls -al *.txt
(3)、$exit
此時,該目錄下的所有 txt 文件名稱就會以長格式保存在 myresultfile 文件中了。
然後你再使用 SHELL 編程的功能把那些無用的列去掉即可。
Ⅵ 如何用shell腳本統計出當前目錄下子目錄,還有所有可讀,可寫,可執行的文件的個數
#!/bin/bash
fcnt=0
dcnt=0
frcnt=0
fwcnt=0
fxcnt=0
forfilein*
do
if[-f$file];then
letfcnt+=1
if[-r$file];then
letfrcnt+=1
fi
if[-w$file];then
letfwcnt+=1
fi
if[-x$file];then
letfxcnt+=1
fi
elif[-d$file];then
letdcnt+=1
fi
done
echo"Thereare$fcntfilesin$PWD"
echo-e" Thereare$frcntreadablefilesin$PWD"
echo-e" Thereare$fwcntwriteablefilesin$PWD"
echo-e" Thereare$fxcntexecuteablefilesin$PWD"
echo"Thereare$dcntdirectoriesin$PWD"
Ⅶ 如何用shell編程列印出目錄下的所有文件內容
1)看下面的腳本a1.sh,假設要顯示目錄/home/user/tmp/下面的所有的文件和(子)目錄的名字:
$ cat a1.sh
#!/bin/bash
for file in /home/user/tmp/*
do
echo $file
done
2)假設目錄/home/user/tmp/下面的所有的文件和(子)目錄如下:
$ ls
1.txt 2.txt a1.sh a.sh b.sh email_back m1.doc tmp
3)運行腳本:
$ a1.sh (或者./a1.sh)
/home/user/tmp/1.txt
/home/user/tmp/2.txt
/home/user/tmp/a1.sh
/home/user/tmp/a.sh
/home/user/tmp/b.sh
/home/user/tmp/email_back
/home/user/tmp/m1.doc
/home/user/tmp/tmp
4)腳本a1.sh的作用只是顯示文件和子目錄的列表,要顯示文件的內容,腳本繼續改造,內容如下,看腳本a2.sh:
$ cat a2.sh
#!/bin/bash
for file in /home/shiqingd/tmp/*
do
echo $file
if [ -f $file ]; then
cat $file
fi
done
腳本a2.sh可以達到目的。
Ⅷ 如何目錄A下執行另一目錄(目錄B)下的shell腳本test
可能知道怎麼回事了。
估計B腳本中添加了引用路徑的當前變數。
比如:B腳本中有一變數
Cur_Dir=$(pwd)
這樣執行過程如果不是當前目錄執行的,就會引用A目錄下的路徑,自然找不到指定的文件。
知道原因後,即可在B下執行,或者變數B中的路徑為完整路徑
Ⅸ bash腳本遍歷目錄指定後綴的文件,並執行操作
可以使用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
Ⅹ shell批量執行同一目錄不同文件夾裡面的東西
注意文件本身別放到50個文件夾裡面,容易造成死循環。
#!/bin/sh
for file in `find /opt -type f -name "*.sh"`;do
echo $file
sh $file
done