如何将命令行参数放到shell脚本中
问题描述:
我有一个可执行的shell脚本名称project2。以下是我的老师给我的项目指导之一。如何将命令行参数放到shell脚本中
此脚本必须接受至少一个 命令行参数:目录 其中它的输出将被放置。如果 那个目录没有在 命令行上给出,那么脚本应该使用合理的默认目录 。
你能告诉我如何让我的脚本接受命令行。我以前没有做过这样的事情。任何帮助将不胜感激。非常感谢。
答
对于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
你的任务的基本思想是:
- 检查参数计数以查看它是否为零。
- 如果它为零,请将变量设置为一些有用的默认值。
- 如果它不是零,请根据第一个参数设置该变量。
- 做任何你必须做的变量。
+0
另请参阅'man bash'中的“特殊参数”部分 – 2010-11-15 06:56:10
+0
哇,谢谢你的详细信息。现在我明白它是如何工作的。非常感谢。 – 2010-11-15 08:02:52
我假设你正在使用bash,而不是其他一些shell,对吗? – 2010-11-15 06:43:06
是的,我使用的是Bash – 2010-11-15 06:43:58