Проблема Почему read_stat не обновляется внутри скрипта, но отлично работает из командной строки?
Фактическая реализация и вывод
Shell Script: Test1. sh
sg_raw -v -s 512 -i ttttt.bin / dev / sg4 12 00 00 00 &> read_stat
if grep - w "Хорошо" read_stat; затем
printf "PASS"
else
printf «FAIL»
Вывод при выполнении сценария
$ sudo./Test1. sh
$ sg_raw -v -s 512 -i ttt.bin / dev / sg4 12 00 00 00
cdb to send: 12 00 00 00
Статус SCSI: Хороший
FAIL
(base) dd@qqqq: ls -l
-rwxrwxrwx 1 dd dd 0 13 июля 11:09 read_stat
ВЫПОЛНИТЬ КОМАНДУ С ТЕРМИНАЛА
$ sg_raw -v -s 512 -i ttttt.bin / dev / sg4 12 00 00 00 &> read_stat
$ ls -l
-rwxrwxrwx 1 dd dd 41 13 июля, 11:15 read_stat
$ cat read_stat
Статус SCSI: Хорошо
Нет ошибок
Предыдущая реализация (игнорировать)
Сценарий оболочки: Test1. sh
- Создан файл как read_stat
-rwxrwxrwx 1 dd dd 0 13 июля, 10:14 read_stat
Выполнил следующую команду из Test1. sh
sg_raw -v -s 512 -i ttttt.bin / dev / sg4 12 00 00 00 &> read_stat
ls -l из командной строки
-rwxrwxrwx 1 dd dd 0 13 июля 10:18 read_stat
Но если та же команда «sg_raw - v -s 512 -i ttttt.bin / dev / sg4 12 00 00 00 &> read_stat "
выполняется из командной строки, тогда я могу увидеть значение внутри read_stat
-rwxrwxrwx 1 dd dd 14 июля 13 10:18 read_stat
Почему read_stat не обновляется внутри скрипта, но отлично работает из командной строки?