如何在运行时获取数据并在unix中执行代码

时间:2016-06-15 08:28:39

标签: bash unix

首先,用户将调用文件名Time.sh并输入两个数据,即StartTime,EndTime。我有Time.sh文件中的代码来提取StartTime和EndTime之间的数据。我正在使用以下代码。

#!/bin/bash
read -p "Enter StartTime:" StartTime
read -p "Enter EndTime:" EndTime
awk -v StartTime="$StartTime" -v EndTime="$EndTime" -f Script.sh Test.log

所以在bash中我会像下面这样,

$ ./Time.sh
Enter Start Time :(User will enter StartTime. Example:01:04:22)
Enter End Time : (User will enter EndTime. Example:01:05:22)

我想简单地为用户提供,用户应该在一行中输入所有三个数据,例如,

Time.sh 01:04:22 01:05:55

如何修改以获得相同的结果?请帮助。

1 个答案:

答案 0 :(得分:0)

编辑:添加了输入验证

您可以使用命令行参数,如下所示:

#!/bin/bash
StartTime=$1
EndTime=$2

if [[ "$StartTime" > "$EndTime" ]]; then
    echo "StartTime cannot be greater than EndTime"
else
    awk -v StartTime="$StartTime" -v EndTime="$EndTime" -f Script.sh Test.log 
fi

然后按:./Time.sh 01:04:22 01:05:55

运行它