永发信息网

shell如何接收输入参数

答案:2  悬赏:60  手机版
解决时间 2021-12-17 15:42
  • 提问者网友:你亏欠我一段小時光
  • 2021-12-17 01:33
shell如何接收输入参数
最佳答案
  • 五星知识达人网友:可爱到不行
  • 2021-12-17 01:59
UNIX/Linux下的shell:
使用 $1 $2 ..... 引用输入参数

windows/cmd下的shell
使用%1 %2....引用输入参数
全部回答
  • 1楼网友:糊涂少女
  • 2021-12-17 02:12
写一个 程序名为 test.sh 可带参数为 start 和 stop 执行 test.sh start 执行 start 内容的代码 执行 test.sh stop 执行 stop 内容的代码 #!/bin/bash if [ $1 == "start" ] then echo "do start" command groups elif [ $1 == "stop" ] then echo "do stop" command group else echo "please make sure the positon variable is start or stop." fi 自变量的接收 接收来自命令行传入的参数,第一个参数用$1表示,第二个参数$2表示,。。。以此类推。注意:$0表示脚本文件名。另外一个在shell编程中经常用到 的是“$@”这个代表所有的参数,。你可以用一个循环来遍历这个参数。如果用java来类比的话,可以把$@看作是man函数中定义的那个数组 for examples: bash里的语句总是那么的人性化,十分的接近自然语言,在for语句中几乎可以迭代任何类似与集合的数据类型(或许这样个说法不对,但我确实想不到更好的词来代替)。 看一个例子: #!/bin/bash for args in $@ do echo $args done 把上面这段代码录入保存为showargs.sh设置为可执行(chmod +x showargs.sh)执行: $ ./showargs.sh arg1 arg2 arg3 arg4 arg1 arg2 arg3 arg4 这个例子中,我们用到了之“$@”,它代表了所有的命令行参数。在这里用for对其进行遍历,系统迭代地从$@中取出命令行参数把他放到args中,最后使用echo $args进行输出。 for更经常用到的是遍历目录,下面的例子用于列出当前目录下的所有文件和文件夹的名称 $ for file in * > do > echo $file > done 这里用*代表当前目录,列出的是所有的文件和文件夹的名称,在这里,文件夹和文件你是分不出来的,如果你需要,你应该用if [-d ${file}]来做一下判断。 对于文件遍历,更有趣的是,你可以在 “in” 后面接上多个表达式。也就是说,你可以一次在遍历多个目录。 下面这段代码能把当前目录下go文件夹和do文件夹里的文件复制到fo文件夹下 #!/bin/bash for args in ./go/* ./do/* do cp ${args} ./fo echo "copying ${args} to ./fo/${args}" done
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯