Сценарий Bash не работает?

Я сделал сценарий, чтобы проверить, присутствуют ли sdb или диски sdc. но даже когда я имею, оба или один из них представляют сценарий, завершается. что не так с моим сценарием?

HDD1="sdb"
HDD2="sdc"

echo "Checking if necessary hard drives for NFS are present:"

function checkdrive 
{
DRIVE_CHK1=$(lsblk -o NAME | grep -w $1)
DRIVE_CHK2=$(lsblk -o NAME | grep -w $2)

if [ "$DRIVE_CHK1" == "$1" ]; then
    echo Found $1 drive.
    drive=$1
elif [ "$DRIVE_CHK2" == "$2" ]; then
    echo Found $2 drive.
    drive=$2
else
    echo ERROR! Could not locate hard drives.
    echo Terminating script.
    exit
fi
}

checkdrive $HDD1 $HDD2
2
задан 8 April 2015 в 15:50

2 ответа

Вы запускаете скрипт без хижины. Если у Вас нет хижины, необходимо выполнить ее с предыдущим:

/bin/bash <script>

Неважно, если сценарий является исполняемым файлом или нет...
Когда я запускаю скрипт в своей системе с командой выше, это хорошо работает.

3
ответ дан 2 December 2019 в 02:22

Попытайтесь "отладить" свой сценарий с набором-x, просто поместите его в свой сценарий как первая команда (можно также установить это в консоли, посмотрите).

[simmel]@[mars]$ set -x
[simmel]@[mars]$ echo Hello
+ echo Hello
Hello

Где + знак показывает команду, которая выполнялась, и строка после этого является выводом этой команды.

Проверьте свой вывод шаг за шагом и посмотрите, возвращаетесь ли Вы, что Ваш поиск.

1
ответ дан 2 December 2019 в 02:22

Другие вопросы по тегам:

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