выражение и переменные

  • Зарезервированный раздел Microsoft , или MSR, представляет собой раздел устройства хранения данных, который создается просто для того, чтобы зарезервировать часть дискового пространства для возможного последующего использования программным обеспечением операционной системы операционной системы Windows. система. Никакие данные не хранятся в MSR; Windows может брать из раздела MSR для создания новых разделов, которые сами могут содержать структуры данных. (Википедия)

  • Вам он понадобится только в том случае, если вы планируете использовать диск в качестве системного диска Windows. На диске с данными Windows он не нужен.

  • Раздел GRUB не обязательно должен быть первым.

  • Если вы планируете загружаться с этого диска под UEFI, вам понадобится системный раздел EFI , отформатированный в FAT32 ( vfat в терминологии Linux). Это дополнительно из любого раздела / boot .

2
11.05.2017, 21:21
1 ответ

Почему ваш сценарий не работает

Ваш сценарий, как сейчас, выполняет раскрытие подстановочных знаков, чтобы заменить подстановочные знаки всеми файлами в вашем текущем рабочем каталоге. Это становится очевидным, если вы добавите опцию set -x в начало скрипта.

$ ./expr_script.sh 2 '*' 2
+ args='2 * 2'
++ expr 2 -23.txt add_location_name.py expr_script.sh kusalananda 'Movie A (2014)' 'Movie B (2016)' one.test popup_script.sh somefile2.txt somefile.txt somethings texts three.test turnSignal.v two.test 2
expr: syntax error
+ result=
+ echo '2 * 2 = '
2 * 2 = 

Как это исправить

Вам не понадобится расширение имени файла в арифметическом скрипте, поэтому отключите расширение глобуса с помощью опции set -f.

#!/bin/bash
set -f
##set -x
args="$@" # the first line of the script
result=$(expr $args)
echo "$args = $result"

Это работает:

$ ./expr_script.sh 2 '*' 2
2 * 2 = 4
2
27.01.2020, 22:10

Теги

Похожие вопросы