Как передать параметры сценарию Bash Linux? [закрытый]

У меня есть сценарий удара Linux 'myshell'. Я хочу, чтобы это считало две даты как параметры, например: myshell date1 date2. Я - программист Java, но не знаю, как записать сценарий, чтобы сделать это.

Остальная часть сценария похожа на это:

sed "s/$date1/$date2/g" wlacd_stat.xml >tmp.xml
mv tmp.xml wlacd_stat.xml
51
задан P Shved 15 April 2010 в 02:35
поделиться

4 ответа

вы используете $ 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
76
ответ дан 7 November 2019 в 10:06
поделиться

$ 0 $ 1 $ 2

И так далее будет содержать имя сценария, затем первая и вторая строки аргумент.

6
ответ дан 7 November 2019 в 10:06
поделиться

Чтобы перебрать параметры, вы можете использовать это сокращение:

#!/bin/bash
for a
do
    echo $a
done

Эта форма такая же, как для a в "$ @" .

9
ответ дан 7 November 2019 в 10:06
поделиться

Аргументы Bash названы в соответствии с их положением.

Более того, если вам нужно обрабатывать один аргумент за другим, вы можете сдвинуть их и всегда использовать $ 1 :

while [ $# -gt 0 ]
do
    echo $1
    shift
done
7
ответ дан 7 November 2019 в 10:06
поделиться