Я считаю, что это простая проблема синтаксиса с моей стороны, но я не смог найти другой пример, аналогичный тому, что я пытаюсь сделать. У меня есть переменная, принимающая в определенном месте на диске, и мне нужно использовать это место в команде HDPARM/Grep, чтобы вытащить максимальную LBABash - командный вызов перенесен в переменную с другой переменной внутри
targetDrive=$1 #/dev/sdb
maxLBA=$(hdparm -I /dev/sdb |grep LBA48 |grep -P -o '(?<=:\s)[^\s]*') #this works perfect
maxLBA=$(hdparm -I $1 |grep LBA48 |grep -P -o '(?<=:\s)[^\s]*') #this fails
Я также попытался
maxLBA=$(hdparm -I 1 |grep LBA48 |grep -P -o '(?<=:\s)[^\s]*')
maxLBA=$(hdparm -I "$1" |grep LBA48 |grep -P -o '(?<=:\s)[^\s]*')
Спасибо за help
Греф, похоже, не работает на моей машине. Я не получаю никаких результатов, которые выполняются непосредственно с/dev/sda. Вам просто нужно, чтобы сектора, расположенные за пользовательскими секторами LBA48:? – flazzarini
Вы хотите, чтобы '**' были буквальными? Они не работают для акцента при использовании внутри раздела кода. –
Вы, безусловно, уверены, что '$ 1', на самом деле, именно то, что вы ожидаете от этого? Я бы предложил запустить 'printf 'Первый аргумент:% q \ n'" $ 1 "' –