shell脚本f
1、利用$@, $#, $*参数或shift移位参数进行循环
2、例1
#!/bin/sh
while [ $# -gt 0 ]; do
echo $1
shift;
done
3、例2
#!/bin/sh
until (($#==0)); do
echo $1
shift;
done
4、例3
#!/bin/sh
for x in $*;do
echo $x
done
5、例4
#!/bin/sh
for x in $@;do
echo $x
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的所有数字
Ⅲ 用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
#结束
Ⅳ linux远程登陆的shell脚本for循环无结果
我比较认同“ssh之后是远程主机执行的命令
本地变量不起作用”这种说法
你的脚本之所以$aaa能回显,是因为在本地定义了这个变量,但本地没有定义$i这个变量,所以无法显示变量值,把aaa="u1 u2"一块塞<<ff.......ff这个内联重定向数据中去。再试试看。
Ⅳ shell脚本for循环怎么做出如下数值输出
for循环,do循环
Ⅵ shell脚本中for循环结果echo输出重复
你这段脚本的问题在于ssh执行后ssh就结束了,count和echo都是在本机执行。可以把count里的命令直接放在ssh中去执行,也不用echo "$count"了。
ssh这段可修改为:
ssh$i".~/.bash_profile&&ls~/Data/dbc/$ACCT_CYCLE/dat/admin/|wc-l"
Ⅶ 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脚本for循环逐行原样输出
我在写Shell脚本时遇到了这样一个问题。
需求:从文件中逐行遍历然后输出。
诶?
为什么和我源文件的行数不一致呢?
后来查资料发现:
bash shell会将下列字符当作字段分隔符:空格、制表符、换行符
如果我们想忽略掉这些分隔符,需要设IFS的变量值。
在for循环前加上这个IFS赋值操作就可以了
看,现在输出的结果和我们txt文件中的格式是一样的了。
但是这样赋值会有问题,如果脚本中其他方法也用到了for循环,可能影响其他for循环的输出结果,那我们可以用这种方式给IFS赋值
