Баш, если блок не запускается, когда он явно должен
Код:
first=true
mountpoint=" "
partlist=`df -h | grep "^/dev"` # get partition info
for i in $partlist # loop through info
do
if [[ ${i:0:1} = "/" ]] # items starting with / are what I'm interested in
then
if [[ $first ]] # The first instance in each pair is the device name
then
mountdev=$i
mountpoint=" "
first=false
else # The second instance is the device mount point
mountpoint=$i
first=true
fi
if [[ $mountpoint != " " ]] # If the mountpoint was just set (last to be set
# before printing config)
then
# Print config
echo "${mountpoint} \${fs_size ${mountpoint}"
echo "USED \${fs_used ${mountpoint}}\${alignr}\${fs_free ${mountpoint}} FREE"
echo "\${fs_bar 3,300 ${mountpoint}}"
echo "READ \${diskio_read ${mountdev}}\${alignr}\${diskio_write ${mountdev}} WRITE"
echo ""
fi
fi
done
Эта проблема:
Цель состоит в том, чтобы создать сценарий, который будет генерировать мою предпочтительную конфигурацию conky для каждого из моих компьютеров без необходимости редактировать файл для каждого компьютера. Выше приведен фрагмент, который генерирует раздел, в котором содержится информация об использовании моего диска. К сожалению, у меня проблемы с выводом НИЧЕГО. Я добавляю в него различные отладочные эхо, и кажется, что все работает правильно, кроме оператора if, который на самом деле выводит конфигурацию. Я не могу понять, что с ним не так, хотя. Любые предложения или помощь?
Заранее спасибо:)
1 ответ
Это неправильная строка:
if [[ $first ]] # The first instance in each pair is the device name
Это всегда будет соответствовать действительности. [[ true ]]
или же [[ false ]]
является синонимом [[ -n true ]]
или же [[ -n false ]]
что всегда правильно.
Что вы, вероятно, имели в виду
if "$first"
Или же
if [[ $first == true ]]