Строка команды экранирования Bash Script для использования переменной в качестве имени файла - PullRequest
0 голосов
/ 10 июля 2019

Как мне избежать использования строки для использования имени файла в следующем скрипте?Я даже правильно получаю переменную?

Сценарий таков: у меня несколько десятков маленьких файлов голосовых сообщений.Их нужно отправлять с помощью команды / URL-адреса gcloud, и отправляется возврат, и этот возвращаемый результат устанавливается как переменная.После того, как я получу ответ возврата, мне нужно отправить тот же файл и ответ возврата в базу данных, используя схему файла json.

Отредактировано: я пытался экранировать, добавляя / заключая в одинарные кавычки, двойныецитаты и кавычки.все возвращаемые ошибки и все возвращаемые ошибки показывают URL-адрес, содержащий «$ i», а не filename.flac.

Когда я пытаюсь без экранирования строки, я получаю эту ошибку:

КогдаЯ делаю это без побега Я получаю это:

add2.sh: line 4: syntax error near unexpected token `sudo'
add2.sh: line 4: `      sudo gcloud ml speech recognize `/var/www/html/library/422980-2560-WIN/$i --language-code='en-US' >STT.txt`'

Вот сценарий:

#!/bin/bash
    cd /var/www/html/library/422980-2560-WIN
    for i in *.flac;
        sudo gcloud ml speech recognize `/var/www/html/library/422980-2560-WIN/"$i" --language-code='en-US' >STT.txt`
    done
    STT=`grep -Po '"transcript": *\K"[^"]*"' STT.txt | cut -d '"' -f2`
    echo $STT
    sudo gsutil cp /var/www/html/library/422980-2560-WIN/"$i".flac gs://422980
    #rm -i -f -- /var/www/html/library/422980-2560-WIN/*.flac
    sudo /usr/local/fuego --credentials /home/repeater/medialunaauth01-280236ff5e5f.json add 422980 '
    {
            "bucketObject": "https://storage.cloud.google.com/$i",
            "fileDay": "filedaytest33",
            "fileMonth": "filemonttest33",
            "fileName": "filenametest33",
            "fileTime": "filetimetest33",
            "fileYear": "fileyeartest33",
            "liveOnline": "0",
            "qCChecked": "0",
            "speechToText":"'"$STT"'",
            "transcribedData": "",
    }'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...