如何将参数传递给Linux Bash脚本?

chu*_*hun 53 linux bash shell

我有一个Linux bash脚本'myshell'.我希望它读取两个日期作为参数,例如:myshell date1 date2.我是一名Java程序员,但不知道如何编写脚本来完成这项工作.

脚本的其余部分是这样的:

sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml
mv tmp.xml wlacd_stat.xml
Run Code Online (Sandbox Code Playgroud)

gho*_*g74 77

你在脚本中使用$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
Run Code Online (Sandbox Code Playgroud)

  • @chun,你也可能想等一段时间才接受答案,即使它适合你.也许其他人可以提出更好的答案,但他们甚至可能不会看你的问题,因为已经接受了某些东西. (7认同)

Pau*_*ce. 9

要迭代参数,您可以使用此简写:

#!/bin/bash
for a
do
    echo $a
done
Run Code Online (Sandbox Code Playgroud)

这个表格和for a in "$@".


mou*_*iel 7

Bash参数以其位置命名.

此外,如果你需要一个接一个地处理一个参数,你可以移动它们并始终使用$1:

while [ $# -gt 0 ]
do
    echo $1
    shift
done
Run Code Online (Sandbox Code Playgroud)


Sim*_*lli 6

$ 0 $ 1 $ 2

等等将包含脚本名称,然后是第一行和第二行参数.