خوب میتونیم از خروجی قبلی (hdx,y) رو با دستور grep جدا کنیم و توی یه متغیر مثلا به اسم sysdev ذخیره کنیم و بعد این متغیر رو توی یه بلوک جدید بدیم به root :
#!/bin/bash
set `{
grub --batch <<EOF |grep \(hd[0-9],[0-9]\)
find /boot/grub/stage1
quit
EOF
}`
sysdev=$1
echo $sysdev
تا اینجا فقط (hdx,y) رو گذاشتیم توی متغیر sysdev و بعد توی خروجی نمایش دادیم . البته این خط هم توی خروجی نمایش داده میشه ولی توی sysdev ذخیره نمیشه اگر خط آخر یعنی echo رو حذف کنی متوجه میشی که بازم خط زیر نمایش داده میشه که نمیدونم چطور حذفش کنم :
Probing devices to guess BIOS drives. This may take a long time.
البته مهم نیست مشکلی ایجاد نمیکنه .
حالا اگر اسکریپت رو گسترش بدیم یه چیزی تو این مایه ها خواهیم داشت :
#!/bin/bash
set `{
grub --batch <<EOF |grep \(hd[0-9],[0-9]\)
find /boot/grub/stage1
quit
EOF
}`
sysdev=$1
{
grub --batch <<EOF
root $sysdev
quit
EOF
}
دیگه چیکار باید بکنیم ؟
ویرایش :
ضمنا اون sudo رو از اسکریپت بیار بیرون اینطوری برای بلوک های بعدی هم باید sudo بذاری :
sudo ScriptName