Как я могу «заполнить пробелы» для команды в скрипте из пользовательского ввода? - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь создать сценарий, который запрашивает номер таймера и номер DC у пользователя, выполняющего сценарий, и я собираюсь заполнить X для

/u/applic/tna/shell/tc_software_update.sh tmcxx.s0xxxx.us REFURBISHED

Тем не менее, я озадачен тем, как сделать так, чтобы пользовательский ввод заполнял эти X в этой команде в скрипте. Этот сценарий находится на самых ранних стадиях, поэтому сейчас он очень грубый, смеется. Спасибо, что ответили. Вот скелет сценария, над которым я работаю:

#!/bin/bash

#This server is intended to speed up the process to setup timeclocks from DC tickets

#Defines time clock numbers

timeclocks="01|02|03|04|05|06|07|08|09|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31|32|33|34|35"

#Defines DC number

echo “What is the DC number?”

read dc

#Defines TMC number

echo "What is the Time Clock number?"

read number

if $number == $timeclocks && $dc == ???; then
/u/applic/tna/shell/tc_software_update.sh tmcxx.s0xxxx.us REFURBISHED

Ответы [ 2 ]

0 голосов
/ 30 июня 2018

Моделируем это в вашем скрипте:

timeclocks=( {1..35} )
printf '%s' "DC number: "; read dc
printf '%s' "Time Clock number: "; read tmc
tmc=$( printf '%02d' "$tmc" )
dc=$( printf '%04d' "$dc" )
tmc_valid=$( for t in ${timeclocks[@]}; do \
    [[ $tmc -eq $t ]] && echo true && break; \
    done )
[[ "$tmc_valid" = "true" && "$dc" = "???" ]] && \
/u/applic/tna/shell/tc_software_update.sh tmc${tmc}.s0${dc}.us REFURBISHED
0 голосов
/ 30 июня 2018

Вы имеете в виду призыв $ /u/applic/tna/shell/tc_software_update.sh tmc${number}.s0${dc}.us REFURBISHED?

Рассмотрим следующий фрагмент:

[test.sh]
read x
read y
echo "x=${x}, y=${y}"

$ sh test.sh 
5
4
x=5, y=4

Далее, вы можете использовать аргументы командной строки ($ 1, $ 2 и т. Д.) Вместо ввода пользователя.

...