linux腳本for
『壹』 linux腳本里,ssh 里可以嵌套for循環怎麼弄啊
很簡單 , 語法都是一樣的, 一個結構裡面嵌套一個完整的語句就行了。
以後要是有Linux shell編程, linux系統管理的問題, linux系統安全的問題, 都可以解決哦
樓主可以私信一下啊。
這個絕對可以幫到的哦!
『貳』 shell里for循環的幾種寫法
#從文件循環進入,注意aaa.txt每行中不能有空格,不然會有問題
for i in `cat aaa.txt`
do
echo $i
done
#數字循環
for i in `seq 1 100`
do
echo $i
done
#while,可以無視行中的空格
while read line
do
echo $line
done < aaa.txt
『叄』 Linux腳本:for循環 {1..100}和$(seq 1 100)兩種列表模式,什麼區別
{x..y[..i]} 這種形式是bash內部的一種表達式,會生成一個空格分隔的數字序列字元串
$(cmd) 或 `cmd` 是bash的另一種表達式,表示把cmd的輸出作為一個字元串
因此可見, 使用$(seq x y)的方式系統會啟動一個新的進程運行cmd命令,相對於{x..y}的方式,速度上會有劣勢,同時內存佔用也會更多,此外還依賴/bin/seq命令的存在。
『肆』 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腳本中作為循環的變數。
『伍』 關於linux shell腳本中for循環的問題
你的變數指定的有問題。你可以這么寫:
#!/bin/bash
for i in $( seq 1 100 )
do
echo $i
done
『陸』 Linux shell腳本for循環中in的[數據列表]從文件中取得
for i in $(cat test)
可以試試看, for之前可以指定分隔符號.
另外一般用 while read 讀取文件
還有其實上面兩種都不好, 現在主流的做法還是awk和sed處理文件, 功能強 安全
『柒』 unix shell腳本寫一個for循環,比較急!!!
#! /bin/bash
for i in `seq 1 100`; do
echo file$i
touch file$i
done
『捌』 shell裡面的for循環
關於shell中的for循環用法很多,一直想總結一下,今天網上看到上一篇關於for循環用法的總
結,感覺很全面,所以就轉過來研究研究,嘿嘿...
1、 for((i=1;i<=10;i++));do echo $(expr $i \* 4);done
2、在shell中常用的是 for i in $(seq 10)
3、for i in `ls`
4、for i in ${arr[@]}
5、for i in $* ; do
6、for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do
7、for i in f1 f2 f3 ;do
8、for i in *.txt
9、for i in $(ls *.txt)
for in語句與` `和$( )合用,利用` `或$( )的將多行合為一行的缺陷,實際是合為一個字元串
數組
============ -_- ==============for num in $(seq 1 100)
10、LIST="rootfs usr data data2"
for d in $LIST; do
用for in語句自動對字元串按空格遍歷的特性,對多個目錄遍歷
11、for i in {1..10}
12、for i in stringchar {1..10}
13、awk 'BEGIN{for(i=1; i<=10; i++) print i}'
注意:AWK中的for循環寫法和C語言一樣的
===============================================================
01.#/bin/bash
02.# author: 周海漢
03.# date :2010.3.25
04.# blog.csdn.net/ablo_zhou
05.arr=("a" "b" "c")
06.echo "arr is (${arr[@]})"
07.echo "item in array:"
08.for i in ${arr[@]}
09.do
10. echo "$i"
11.done
12.echo "參數,\$*表示腳本輸入的所有參數:"
13.for i in $* ; do
14.echo $i
15.done
16.echo
17.echo '處理文件 /proc/sys/net/ipv4/conf/*/accept_redirects:'
18.for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do
19.echo $File
20.done
21.echo "直接指定循環內容"
22.for i in f1 f2 f3 ;do
23.echo $i
24.done
25.echo
26.echo "C 語法for 循環:"
27.for (( i=0; i<10; i++)); do
28.echo $i
29.done
-----------------------------------------------------------------------------------
----------------------
shell中for循環用法
shell語法好麻煩的,一個循環都弄了一會 ,找了幾個不同的方法來實現輸出1-100間可以被3
整除的數
1.用(())
#!/bin/bash
clear
for((i=1;i<100;i++))
for
do
if((i%3==0))
then
echo $i
continue
fi
done
2.使用`seq 100`
#!/bin/bash
clear
for i in `seq 100`
do
if((i%3==0))
then
echo $i
continue
fi
done
3.使用while
#!/bin/bash
clear
i=1
while(($i<100))
do
if(($i%3==0))
then
echo $i
fi
i=$(($i+1))
done
-----------------------------------------------------------------------------------
---------------------
在shell用for循環做數字遞增的時候發現問題,特列出shell下for循環的幾種方法:
1.
for i in `seq 1 1000000`;do
echo $i
done
用seq 1 10000000做遞增,之前用這種方法的時候沒遇到問題,因為之前的i根本就沒用到百萬
(1000000),因為項目需要我這個數字遠大於百萬,發現用seq 數值到 1000000時轉換為1e+06,根
本無法作為數字進行其他運算,或者將$i有效、正確的取用,遂求其他方法解決,如下
2.
for((i=1;i<10000000;i++));do
echo $i
done
3.
i=1
while(($i<10000000));do
echo $i
i=`expr $i + 1`
done
因為本方法調用expr故運行速度會比第1,第2種慢不少不過可稍作改進,將i=`expr $i + 1`改
為i=$(($i+1))即可稍作速度的提升,不過具體得看相應shell環境是否支持
4.
for i in {1..10000000;do
echo $i
done
其實選用哪種方法具體還是得由相應的shell環境的支持,達到預期的效果,再考慮速度方面的
問題。
『玖』 shell腳本for循環中如何調用別的程序
把你的.C文件編譯成可執行文件,比如你將hello.c編譯成文件名為hello的可執行文件,且該可執行文件在目錄/usr/bin下,你就可以這么來重復調用該程序:
#!/bin/bash
i=1
for((i=1;i<=300;i++));do
/usr/bin/hello #文件路徑不限
done
試試,應該可以!
『拾』 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的所有數字