如何将命令行参数放到shell脚本中

时间:2010-11-15 06:39:13

标签: bash shell

我有一个可执行shell脚本名称project2。以下是我老师给我的项目指导之一。

  

此脚本必须至少接受一个   命令行参数:目录   它的输出放在哪里。如果   该目录未在上面给出   命令行,脚本应该使用一个   合理的默认目录。

请告诉我如何让脚本接受命令行。我之前没有做过这样的事。任何帮助将不胜感激。非常感谢。

2 个答案:

答案 0 :(得分:5)

对于bash,命令行参数存储在$1$2等,而$#将为您提供计数。此外,shift可用于将所有“左”移位一个位置并放弃计数。

以下脚本是理解参数如何工作的良好起点:

echo $#
while [[ $# -gt 0 ]] ; do
    echo "$1"
    shift
done

使用以下命令运行时:

./myprog.sh hello there my name is "pax     diablo"

输出是:

6
hello
there
my
name
is
pax     diablo

你的任务的基本理念是:

  • 检查参数计数以查看它是否为零。
  • 如果为零,则将变量设置为某个有用的默认值。
  • 如果不为零,则根据第一个参数设置该变量。
  • 做任何与该变量有关的事情。

答案 1 :(得分:1)

查看this sectionAdvanced Bash Scripting guide

我建议你阅读整本指南。