Ответ 1
вы используете $1
, $2
в script например
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
У меня есть Linux bash script 'myshell'. Я хочу, чтобы он читал две даты в качестве параметров, например: myshell date1 date2
. Я программист на Java, но не знаю, как написать script, чтобы это сделать.
Остальная часть script выглядит так:
sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml
mv tmp.xml wlacd_stat.xml
вы используете $1
, $2
в script например
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
Чтобы перебрать параметры, вы можете использовать это сокращение:
#!/bin/bash
for a
do
echo $a
done
Эта форма совпадает с for a in "[email protected]"
.
Bash аргументы называются после их позиции.
Кроме того, если вам нужно обрабатывать один аргумент за другим, вы можете переместить их и всегда использовать $1
:
while [ $# -gt 0 ]
do
echo $1
shift
done
$0 $ 1 $ 2
И так далее будет содержать имя script, затем первый и второй аргументы строки.