分页: 2 / 2

Re: 循环计数

发表于 : 2009-08-09 12:04
syfnet
roylez 写了:

代码: 全选

for i in {1..100} ; do echo $i ; done
roylez的方法不行。我放到循环后,执行结果显示了{1..100}。

怎么回事?

Re: 循环计数

发表于 : 2009-08-09 12:13
BigSnake.NET
syfnet 写了:
O_O_BOT 写了:irc <iNutshell> say: for i in `seq 100` ; do echo $i ; done
已经在循环之中,这个循环语句好像放不到里面。
我想定义一个变量,每执行一个循环便使这个变量+1,然后显示这个变量。
什么叫"放不到里面"

Re: 循环计数

发表于 : 2009-08-09 14:00
roylez
syfnet 写了:
roylez 写了:

代码: 全选

for i in {1..100} ; do echo $i ; done
roylez的方法不行。我放到循环后,执行结果显示了{1..100}。

怎么回事?
也许你的bash版本不够新不支持这种语法。

代码: 全选

roylez@Lancelot:~/workspace/ib/prog$ bash --version
GNU bash, version 4.0.28(2)-release (i686-pc-linux-gnu)
Copyright (C) 2009 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

This is free software; you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Re: 循环计数

发表于 : 2009-08-09 16:04
syfnet
怎么升级bash,我的是3.X版本的。用apt-get upgrade bash好像不行

Re: 循环计数

发表于 : 2009-08-09 17:31
roylez
升级不着急吧?seq也可以用的,只要脚本能用就行了。

我用的是archlinux,估计下个版本的ubuntu很快就会升级过去了。

Re: 循环计数

发表于 : 2009-08-09 20:05
syfnet
我的很多必需程序用ubuntu编译都不成功。非常烦恼。 :em06

roylez先生推荐一个比较好的linux用一下。主要用于计算和编译程序。redflag用过也不行。

Re: 循环计数

发表于 : 2009-08-09 20:34
syfnet
BigSnake.NET 写了:
syfnet 写了:
O_O_BOT 写了:irc <iNutshell> say: for i in `seq 100` ; do echo $i ; done
已经在循环之中,这个循环语句好像放不到里面。
我想定义一个变量,每执行一个循环便使这个变量+1,然后显示这个变量。
什么叫"放不到里面"
这个语句是这么放到我的脚本中吗?
for i in `seq 100`
for f in ZI*.pd; do
b=`basename $f .pdbqt`
echo Processing ligand $b
do echo $i
mkdir -p $b
vv --config conf --ligand $f --out ${b}/out.pdbqt --log ${b}/log.txt
rm $b.pdbqt
done
done

Re: 循环计数

发表于 : 2009-08-09 21:19
BigSnake.NET
你这几句什么意思啊。。。 乱七八糟的

Re: 循环计数

发表于 : 2009-08-09 21:39
syfnet
这个是别人编好的可用的脚本。

代码: 全选

for f in ZI*.pd; do
b=`basename $f .pdbqt`
[color=#0000FF]echo Processing ligand $b[/color]
do echo $i
mkdir -p $b
vv --config conf --ligand $f --out ${b}/out.pdbqt --log ${b}/log.txt
rm $b.pdbqt
done
在蓝色的字下面一行我要显示进行到第几个循环,如何写进去?

Re: 循环计数

发表于 : 2009-08-09 21:42
eexpress
自己去坚持看完下1,2个教程吧。

Re: 循环计数

发表于 : 2009-08-09 21:44
roylez
i=1
for f in ZI*.pd; do
b=`basename $f .pdbqt`
echo Processing ligand $b
echo $i
i=$((i+1))
mkdir -p $b
vv --config conf --ligand $f --out ${b}/out.pdbqt --log ${b}/log.txt
rm $b.pdbqt
done

Re: 循环计数

发表于 : 2009-08-09 22:01
syfnet
roylez 写了:i=1
for f in ZI*.pd; do
b=`basename $f .pdbqt`
echo Processing ligand $b
echo $i
i=$((i+1))
mkdir -p $b
vv --config conf --ligand $f --out ${b}/out.pdbqt --log ${b}/log.txt
rm $b.pdbqt
done
:em11 终于成功。学习了。还望推荐一个编译功能比较全面的linux,这个ubuntu编译我的很多必需程序都告失败。 :em20

Re: 循环计数

发表于 : 2009-08-10 17:33
yingfei
syfnet 写了:
roylez 写了:i=1
for f in ZI*.pd; do
b=`basename $f .pdbqt`
echo Processing ligand $b
echo $i
i=$((i+1))
mkdir -p $b
vv --config conf --ligand $f --out ${b}/out.pdbqt --log ${b}/log.txt
rm $b.pdbqt
done
:em11 终于成功。学习了。还望推荐一个编译功能比较全面的linux,这个ubuntu编译我的很多必需程序都告失败。 :em20

Ubuntu 默认没装那么多编译的东西。 要编译的可以看看 Gentoo。 它大部分都是编译出来的。编译环境肯定没问题了。。

Re: 循环计数

发表于 : 2009-08-10 18:33
BigSnake.NET
syfnet 写了:这个是别人编好的可用的脚本。

代码: 全选

for f in ZI*.pd; do
b=`basename $f .pdbqt`
[color=#0000FF]echo Processing ligand $b[/color]
do echo $i
mkdir -p $b
vv --config conf --ligand $f --out ${b}/out.pdbqt --log ${b}/log.txt
rm $b.pdbqt
done
在蓝色的字下面一行我要显示进行到第几个循环,如何写进去?
显然有问题啊.. 怎么会有两个 do

Re: 循环计数

发表于 : 2009-08-11 10:36
syfnet
gentoo看来也很难用阿。U盘都不能访问。痛苦中