bash ошибка сценария, пока [1: команда не найдена - PullRequest
0 голосов
/ 06 августа 2020

Может ли кто-нибудь решить мою головную боль с помощью следующего кода. Я хочу написать сценарий bash, который создаст таблицу, содержащую интервал времени в соответствии с информацией, введенной пользователем, и таблицу отображения. это часть другой программы, но у меня есть стек с этим until command, который должен быть простым в использовании. Сожалею! Я кодирую на французском языке, но идея такая, как я объяснил

#!/bin/bash
read -p "entrez l'heure de depart(exple: hh:mn:06 or hh:mn:36):" beg_time
read -p "entrez l'intervalle de temps en minute(exple: 10):" Inter
read -p "entrez le nombre d'occurence(exple: 4):" Nbre
let "i = 1"
let "Nb = $Nbre"
tab=("$beg_time")
until [ "$i" -eq "$Nb" ]
do
    tab["$i"]=`date -j -v '+"$Inter"M' -f "%H:%M:%S" "$beg_time" "+%T"`
    let "i += 1"
done
echo ${tab[*]}

, но я получаю это как ошибку line 8: until [ 1: command not found Мне нужно упомянуть, что я использую MacOS, поэтому команда date может не работать на других linux ОС. Пожалуйста, помогите

Ответы [ 3 ]

0 голосов
/ 06 августа 2020

Запускаю это на моей ма c У меня нет такой же ошибки:

+"$Inter"M: Cannot apply date adjustment

Я думаю, вам не нужно цитировать в своем операторе до, это два числа. Вы используете bash или zsh?

0 голосов
/ 06 августа 2020

Я обнаружил проблему с until. по некоторым причинам мне нужно было добавить пробел после ]. Затем мне также нужно было внести небольшие изменения в мой сценарий. последнее обновление выглядит следующим образом.

#!/bin/sh
read -p "entrez l'heure de depart(exple: hh:mn:06 or hh:mn:36):" beg_time
read -p "entrez l'intervalle de temps en minute(exple: 10):" Inter
read -p "entrez le nombre d'occurence(exple: 4):" Nbre

let "i = 1"
let "Nb = $Nbre"
tab=("$beg_time")
until [ $Nb -eq $i ] 
do
    tab["$i"]=`date -j -v ""+$Inter"M" -f "%H:%M:%S" "$beg_time" "+%T"`
    beg_time=${tab["$i"]}
    let "i += 1"    
done
echo ${tab[*]}

спасибо за помощь

0 голосов
/ 06 августа 2020

исправить присвоения переменных:

i=1
Nb="${Nbre}"

то же самое для let "i += 1"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...