Динамическая установка не подходит для установки программного обеспечения.
Думаю, вам нужно:
Сделать USB постоянным . В этом случае вы создаете раздел, где хранятся данные, и передаете флаг (в какой-то ОС)persistent
ядру в меню GRUB. Или, в зависимости от инструмента, который вы используете для создания USB, у него будет возможность создать постоянство, например YUMI .
Хотя я разместил свой ответ в качестве комментария, а комментарии были удалены, давайте попробуем еще раз:
Вы подходите к этому нормально, но его можно улучшить таким образом, что вам не понадобится зависимость от слишком большого количества внешних двоичных файлов. Например, для решения вашей проблемы вы можете использовать awk
следующим образом:
awk -F, -vmyvar="ValNeeded" 'NR==2 { if ($4 == myvar) print "match"; else print "No match"}' file.csv
Если вы хотите сохранить свой код, но немного его переписать, он будет выглядеть так:
#!/bin/bash
varcsv=$(awk -F, 'NR==2 { print $NF }' file.csv)
myvar=ValNeeded
if [[ $varcsv == "$myvar" ]]; then
echo "true"
else
echo "false"
fi
$NF
получает последнее поле в записи.
Как уже упоминал Philippos, ваш файл содержит окончания строк MSDOS, также известные как CR/LF. Вы можете проверить их по-разному, используя cat
, sed
, od
и многие другие инструменты, но давайте не будем усложнять и используем cat
и sed
в этом случае:
cat -vEt file.csv
илиsed -n l file.csv
Это вернет что-то вроде:
Val1,Val2,Val3,SomeVar^M$
Val1,Val2,Val3,ValNeeded^M$
Val1,Val2,Val3,Ignorevar^M$
$
Чтобы удалить эти ^M$
символы вместе, вы можете использовать некоторые утилиты. Например :dos2unix file.csv
. Есть и другие способы сделать это из редактора, но это требует больше усилий.
После преобразования файла все должно быть хорошо.