关于shellshell 函数参数传递递的问题

10:57 提问
一个Shell的简单问题:将ls的内容作为参数传入
就是一个目录下有多个文件夹。
我使用下面的命令:
ls | grep test
然后出现下面的几个文件夹:
test test1 test2 test3
现在我想把这几个文件夹作为类似于xargs的东西传到我的for循环里来
就类似for t in tests
有没有啥比较优雅的方法把这些文件夹放入到tests中。
像ls | grep test & tmp | do 这样的,就不是优雅的方法了吧?
其他相似问题温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
Stay hungry, stay foolish.
工作用脑,生活用心!
走过山重水复,必然迎来柳暗花明!
受苦的人没有悲观的权利,远征的人没有流泪的资格。
Live each day as if we should die tomorrow.
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
阅读(4051)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_085066',
blogTitle:'awk与shell之间的变量传递方法',
blogAbstract:'
我认为在linux下awk是个好东东啊,处理一些文本文件会非常方便。而在',
blogTag:'shell,linux,学习笔记,编程',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:7,
publishTime:2,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'Stay hungry, stay foolish.
\n工作用脑,生活用心!\n走过山重水复,必然迎来柳暗花明!\n受苦的人没有悲观的权利,远征的人没有流泪的资格。\nLive each day as if we should die tomorrow.',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}关于从shell给Java传参数的问题 - 陈华的博客 - ITeye博客
博客分类:
通过shell教本给java传参数,总是被空格断开(我的目的是接受带空格的参数
[code]#!/usr/bin/ksh
PARAMS="";
while getopts dek:f:t:vh OPTION
case $OPTION in
d | e | v | h)
PARAMS=$PARAMS" -$OPTION"
PARAMS=$PARAMS" -k$OPTARG";
PARAMS=$PARAMS" "\""-"$OPTION$OPTARG\";
\?)echo "Illegal Paremters"
echo $PARAMS
#$JAVA_HOME/bin/java MyTEST $PARAMS
public static void main(String args[])
for (int i = 0; i & args. i++) {
if (args[i].startsWith("-d"))
else if (args[i].startsWith("-e"))
else if (args[i].startsWith("-f"))
file_name = args[i].substring(2, args[i].length());
else if (args[i].startsWith("-k"))
key = args[i].substring(2, args[i].length());
else if (args[i].startsWith("-t"))
text = args[i].substring(2, args[i].length());
else if (args[i].startsWith("-a"))
algorithm = args[i].substring(2, args[i].length());
else if (args[i].startsWith("-v"))
else if (args[i].startsWith("-h"))
System.out.println("Unknow args:" + args[i]);
运行shell脚本 给参数 "abc 00", java接受到两个参数 "abc和00"
怎么回事?
关于从shell给Java传参数的问题
abc 00有空格,参数是以空格间隔的
关于从shell给Java传参数的问题
其实你应该发在shell版,因为不是Java的问题:)
把双引号一起赋值给PARAMS和写成"$PARAMS"是不等价的。
不知道下边的这个是不是符合你的要求。
#!/usr/bin/ksh
PARAMS="";
while getopts dek:f:t:vh OPTION
case $OPTION in
d | e | v | h)
PARAMS=$PARAMS" -$OPTION"
PARAMS=$PARAMS" -k$OPTARG";
PARAMS=$PARAMS\ -$OPTION$OPTARG;
echo "Illegal Paremters"
echo $PARAMS
$JAVA_HOME/bin/java MyTEST "$PARAMS"
关于从shell给Java传参数的问题
按照你的做法,所有命令行参数将作为一个参数传递给java啦!
除非我改一改java中的参数处理方式。
还有更好的方式吗?
看来误会你的意思了。
#!/usr/bin/ksh
PARAMS="";
while getopts dek:f:t:vh OPTION
case $OPTION in
d | e | v | h)
PARAMS=$PARAMS" -$OPTION"
PARAMS=$PARAMS" -k$OPTARG";
PARAMS=$PARAMS\ \"-$OPTION$OPTARG\";
echo "Illegal Paremters"
echo $PARAMS
eval $JAVA_HOME/bin/java MyTEST $PARAMS
这样可以了吧?
chenhua_1984
浏览: 775370 次
来自: 杭州
非常感谢!
what 能连数据库不错
java程序语言学习教程 地址http://www.zuida ...
整理的不错,
代码很久了,这个应该是包裹在外面的DIV的ID本文讲的是Shell最多支持多少个参数?_linux shell,
在脚本编写过程中,通常会涉及到参数的输入。譬如,sh 1.sh 10 20,在执行1.sh这个脚本中,10即为第一个参数,20即为第二个参数。有时,就会有这个疑惑,即shell脚本最多可以支持多少个变量呢?疑惑之余,编写了如下脚本,可求出
在脚本编写过程中,通常会涉及到参数的输入。譬如,sh 1.sh 10 20,在执行1.sh这个脚本中,10即为第一个参数,20即为第二个参数。有时,就会有这个疑惑,即shell脚本最多可以支持多少个变量呢?疑惑之余,编写了如下脚本,可求出Shell脚本中可输入参数的最大个数。
该脚本涉及到三个小脚本:1.sh 2.sh 3.sh --在这里为了方便,脚本名都是极其简单的。总的思路是给定一个特定的值n,作为输入参数的最大个数,然后将1,2,3...n作为脚本的输入参数,这通过脚本2.sh来实现,接着原样输出这些参数。如果这些参数全部都能输出,即代表给定的n是合理的。这通过脚本3.sh来实现。1.sh实现的功能是通过一个死循环,递增生成n,通过引用2.sh来判定n是否合理。具体可见如下脚本。
首先我们来看看第一个脚本1.sh
复制代码 代码如下:
#!/bin/bash
echo 0 & currnumber
while true
sh 2.sh $i
if [ $? -ne 0 ];then
echo $i & maxnumber
sed -i '1s/$/& '$i'/' currnumber
该脚本主要是提供了一个死循环,$i指的是可输入参数的个数,2.sh用于判定给定参数的个数是否合理,如果合理,则将该数值追加到currnumber这个文件中,如果不合理,则代表$i-1是shell能接受的最大参数个数。则将该数值输出到maxnumber文件中。
currnumber文件的应用便于检测脚本的执行情况。原打算是echo $i && currnumber,即每一个合理的数值都输出一行,考虑到文件有最大行数的限制,在这里,就将数值输出到一行。sed -i '1s/$/& '$i'/' currnumber即实现该功能,将$i的值添加到行尾。
再来看看脚本2.sh
复制代码 代码如下:
#!/bin/bash
rm -f 1.test
touch 1.test
echo "#!/bin/bash" & 1.test
echo "sh 3.sh" && 1.test
for ((i=1; i&=$ i++))
sed -i '2s/$/& '$i'/' 1.test
脚本2实现的功能是将1,2,3...$i作为3.sh的输入参数,同样,sed -i '2s/$/& '$i'/' 1.test实现的是将1,2,3...n输出到一行。譬如如果$num=10,则1.test的内容如下所示:
复制代码 代码如下:
#!/bin/bash
sh 3.sh 1 2 3 4 5 6 7 8 9 10
最后我们来看看脚本3.sh
复制代码 代码如下:
#!/bin/bash
echo 0 & 2.test
for ((i=1;i&=$i++))
sed -i '1s/$/& '$i'/' 2.test
该脚本实现的是原样输出输入参数,并将该输入参数输出到2.test中。同样,sed -i '1s/$/& '$i'/' 2.test实现的是追加参数到一行。
1& sh 1.sh即可求出shell脚本允许的最大输入参数个数。
2& 因条件有限,没有具体求出该值。但我们可跳过1.sh,单纯的通过2.sh来判定特定的数值。如,sh 2.sh 100000,经测试100000个输入参数没有问题。
3& 该脚本的亮点是如何将特定的值追加到行尾,这主要通过sed -i '1s/$/& '$i'/' 2.test来实现,其实1s代表第一行。$代表行尾。
4& 在vim中,0可跳到行首,$可跳到行尾。
5& shift左移输入参数的位置。默认是左移1位。如shift 3表示原来的$4现在变成$1,原来的$5现在变成$2等等,原来的$1、$2、$3丢弃,$0不移动。
6& 该脚本存在一个隐患,即文本文件的行有最大的字符限制。但将100000作为输入参数个数进行测试时,没有问题,说明文本文件一行还是能容纳相当数量的字符。
PS: 在监测2.test的结果时,我们可以用watch cat 2.test,即每两秒查看一下2.test的内容,但该法有个弊端,数据较多时,无法在一个屏幕中显示,它只会显示前面固定的数据,新增的数据不会显示,但在该例中,我们更加关心的是数据是否增加。如下脚本可实现该功能:
复制代码 代码如下:
#!/bin/bash
while true
cat 2.test
以上是云栖社区小编为您精心准备的的内容,在云栖社区的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索shell
支持多少个参数
linux shell 参数传递、linux shell 参数、linux shell 输入参数、linux shell 参数个数、linux shell 获取参数,以便于您获取更多的相关知识。
弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率
稳定可靠、可弹性伸缩的在线数据库服务,全球最受欢迎的开源数据库之一
6款热门基础云产品6个月免费体验;2款产品1年体验;1款产品2年体验
开发者常用软件,超百款实用软件一站式提供
云栖社区()为您免费提供相关信息,包括
的信息,还有linux shell 参数传递、linux shell 参数、linux shell 输入参数、linux shell 参数个数、linux shell 获取参数等
,所有相关内容均不代表云栖社区的意见!2008年3月 Linux/Unix社区大版内专家分月排行榜第二
2012年9月 Linux/Unix社区大版内专家分月排行榜第三2007年6月 Linux/Unix社区大版内专家分月排行榜第三
2008年3月 Linux/Unix社区大版内专家分月排行榜第二
2012年9月 Linux/Unix社区大版内专家分月排行榜第三2007年6月 Linux/Unix社区大版内专家分月排行榜第三
2008年3月 Linux/Unix社区大版内专家分月排行榜第二
2012年9月 Linux/Unix社区大版内专家分月排行榜第三2007年6月 Linux/Unix社区大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 java shell 参数传递 的文章

 

随机推荐