Я пытаюсь записать вывод скрипта в переменную. Вот код моего сценария (delete.sh):Выходной файл сценария в переменной bash (QNAP QTS 4.0)
#!/bin/bash
echo "Suppression de $1" >> /share/MD0_DATA/remotesync/delete.log
log=$(/share/MD0_DATA/remotesync/remoteSync -rm "$1")
echo $log >> /share/MD0_DATA/remotesync/delete.log̀
Когда я EXEC этот сценарий, я получил, что на выходе:
[/share/MD0_DATA/.qpkg/remotesync] # soft/delete.sh "archivesPAO/3MONTAGE BORNE OZ 275x155.psd"
drivers : ("QMYSQL3", "QMYSQL", "QSQLITE")
Table hubicobject & hubicobjectLocal sucessfully reseted
Load container Object
" ATTENTION recuperation du prefix : archivesPAO/3MONTAGE BORNE OZ 275x155.psd"
Credentials
Refresh Token
"Upload : 100% 0.00 octets/s fin dans : 00:00:00"
"Download : 100% 0.00 octets/s fin dans : 00:00:00"
"Download : 100% 0.00 octets/s fin dans : 00:00:00"
"https://lb9911.hubic.ovh.net/v1/AUTH_f5cb82ec59a615a1c56053608e0c6123"
"Download : 100% 0.00 octets/s fin dans : 00:00:00"
"Download : 100% 0.00 octets/s fin dans : 00:00:00"
"Temps pour inserrer 10000 entree : 0 ms"
[/share/MD0_DATA/.qpkg/remotesync] # cat soft/delete.log
Suppression de archivesPAO/3MONTAGE BORNE OZ 275x155.psd
Так что я не понимаю, почему я не могу запасти это вывода в моей переменной оболочки. Возможно, это потому, что я работаю над QNAP QTS 4.0? Но я так не думаю.
Возможно ли 'remoteSync' печатать на' stderr' вместо 'stdout'? '$ (...)' будет захватывать только 'stdout'. Кроме того, в источнике, который вы указали, вы 'echo' собирается' delete.log' с акцентом над 'g', поэтому, возможно, вы просто печатаете не тот файл? –