我有一个Linux bash脚本'myshell'。我希望它将两个日期作为参数读取,例如:myshell date1 date2
。我是一名Java程序员,但不知道如何编写脚本来完成这项工作。
脚本的其余部分是这样的:
sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml
mv tmp.xml wlacd_stat.xml
答案 0 :(得分:73)
您在脚本中使用$1
,$2
,例如
date1="$1"
date2="$2"
sed "s/$date1/$date2/g" wlacd_stat.xml >temp.xml ;mv temp.xml wlacd_stat.xml #Semicolon can also replaced with a newline
答案 1 :(得分:9)
要迭代参数,您可以使用以下简写:
#!/bin/bash
for a
do
echo $a
done
此表单与for a in "$@"
相同。
答案 2 :(得分:7)
Bash参数以其位置命名。
此外,如果您需要一个接一个地处理一个参数,您可以移动它们并始终使用$1
:
while [ $# -gt 0 ]
do
echo $1
shift
done
答案 3 :(得分:6)
$ 0 $ 1 $ 2
等等将包含脚本名称,然后是第一行和第二行参数。