當前位置:首頁 » 編程軟體 » shell腳本循環寫文件

shell腳本循環寫文件

發布時間: 2022-06-13 08:45:50

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

② shell腳本創建文件並寫入內容

一、cat和EOF
cat命令是linux下的一個文本輸出命令,通常是用於觀看某個文件的內容的;
EOF是「end of file」,表示文本結束符。
結合這兩個標識,即可避免使用多行echo命令的方式,並實現多行輸出的結果。

二、使用
看例子是最快的熟悉方法:

# cat << EOF > test.sh
> #!/bin/bash
> #you Shell script writes here.
> EOF

結果:

引用
# cat test.sh
#!/bin/bash
#you Shell script writes here.

可以看到,test.sh的內容就是cat生成的內容。

③ Shell腳本 根據文件夾下所有文件進行循環

這個任務 可以通過 find ./ 簡單的解決,不需要遞歸循環啊。

④ 如何用Shell腳本往文本文件里寫入一些字元串

用echo+重定向。> 生成一個空文件,向內寫入,>>追加寫入:echo"firstline">output.txt;echo"secondline">>output.txt。

拓展:

1、Shell Script ,Shell腳本與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。但是它比Windows下的批處理更強大,比用其他編程程序編輯的程序效率更高,它使用了Linux/Unix下的命令。

2、換一種說法也就是,shell script是利用shell的功能所寫的一個程序,這個程序是使用純文本文件,將一些shell的語法與指令寫在裡面,然後用正規表示法,管道命令以及數據流重導向等功能,以達到我們所想要的處理目的。更明白地來說,shell script就像早期dos年代的.bat,最簡單的功能就是將許多指令匯整寫一起,讓使用者很容易地就能夠一個操作執行多個命令,而shell script更是提供了數組,循環,條件以及邏輯判斷等重要功能,讓使用者可以直接以shell來寫程序,而不必使用類似C程序語言等傳統程序編寫的語法。

⑤ 寫一個shell腳本,循環每隔3分鍾生成一個新的文本文件

#!/bin/bash

i=1
while :
do
touch text$i
((i++))
sleep 180
done

⑥ 用for循環編寫刪除文件的shell腳本

#!/bin/bash
#2.sh
cd
#進入加目錄
touch
1
#創建文件1
read
-p
"請輸入要刪除的文件
1
:"
file
if
[
"$file"
!=
"1"
];then
echo
"請輸入1
不許輸入別的。謝謝!"
fi
for
i
in
$file
;do
#用for循環把$file代入$i
rm
-rf
$i
#刪除$i
echo
"$i
被刪除了。"
done
#結束

⑦ shell腳本做一個循環

1、看不出規律,假如是按++
#!/bin/sh
N=100
for((i=1;i<$N;i++))
{
((j=N-i))
echo ID="0000:03:00.${j}",NAME="xgbe${i}"
}
2、如果沒有規律,就先做一個列表文件
例如
1 mgt1
2 mgr2
3 xgbe21
然後創建b.sh
#!/bin/sh
while read x y;
do
echo ID="0000:03:00.${x}",NAME="${y}";
done < a.txt

⑧ shell腳本for循環

原因:
1. 因為你所處理的文件換行符是dos格式的」
」 ;

2. 可以使用cat -v 文件名 來查看換行符是否是,如果是上述的,則行結尾會是^m?需要轉換成linux/unix格式的」\n」;
3. 具體轉換辦法就是轉換換行符 。

可以用sed命令處理一下文件,命令如下:?
1. sed 『s/\r//』 原文件 >轉換後文件 ;
2. sed 命令的參數中 」代表決定引用參數,不允許參數中的值讓shell解釋,s代表替換 /後面跟的是被替換的內容,後面的//代表替換後的內容為空 ;

3. 推薦使用EditPlus或者UltraEdit,使用這些文本編輯工具,在保存時,可以選擇保存的文字編碼類型,比如選擇UNIX格式換行符;
4. 我比較喜歡EditPlus的join lines功能,把多行的值變成一個邏輯行,便於寫到shell腳本中作為循環的變數。

⑨ 寫個shell腳本,需要自動循環寫出大量的mac地址。。

·1、linux/Unix底層就c語言,很多的linux/unix系統命令也是編譯後的c語言而生成的bin文件,因此shell中調用c可執行文件與調用系統命令基本上差不多方式,絕對的可以。
·2、毋庸置疑,mac地址本身就是唯一的(排除人為修改),硬碟序列號也是唯一的。

⑩ shell腳本怎麼寫for循環

for
I
in
list;
do
statement
done
I
是變數
list是一個表格
如你可以使用一串用括弧括起來的數,
也可以使用
命令替換
`seq
1
15`
這個命令忘記了,,
有可能是
`seq
15`
[1..15]
表示1-15的數,,
statement
即要執行的語句
for
I
in
[1..10];
do
echo
$I
done
這段for循環的含義就是顯示從1~10的所有數字

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:335
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:377
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:612
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:942
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371