#!/bin/sh
dir='/'
select name in $( find "$dir" -type d ! -name "$dir" -maxdepth 1 ); do
if [ -z "$name" ]; then
echo 'error' >&2
else
break
fi
done
printf 'User picked "%s"\n' "$name"
Это простой сценарий оболочки, который перечисляет каталоги в $dir
и предоставляет пользователю меню для выбора одного из них.
Выбранная запись будет сохранена в $name
.
Проверка:
$ sh script.sh
1) /altroot 7) /root
2) /bin 8) /sbin
3) /dev 9) /tmp
4) /etc 10) /usr
5) /home 11) /var
6) /mnt 12) /tmp_mnt
#? q
error
#? 0
error
#? 9
User picked "/tmp"
Этот сценарий, вероятно, завершится ошибкой, если какое-либо из найденных имен каталогов содержит необычные символы, например символы новой строки.
Создайте /usr/share/applications/YaST2/myModule.desktop
со следующим содержимым:
[Desktop Entry]
Type=Application
Categories=Settings;System;Qt;X-SuSE-YaST;X-SuSE-YaST-Software;
X-KDE-ModuleType=Library
X-KDE-HasReadOnlyMode=true
X-SuSE-YaST-Call=myModule.ycp
X-SuSE-YaST-Group=Software
X-SuSE-YaST-Argument=
X-SuSE-YaST-RootOnly=true
X-SuSE-YaST-AutoInst=
X-SuSE-YaST-Geometry=
X-SuSE-YaST-SortKey=20
X-SuSE-YaST-AutoInstResource=
X-SuSE-YaST-Keywords=myModule
Icon=yast-sw_single
Exec=xdg-su -c "/sbin/yast2 myModule.ycp"
Name=My module
GenericName=My module that does cool stuff
StartupNotify=true
Ваш модуль должен появиться в категории «Программное обеспечение».
Проверьте файлы.desktop других модулей в /usr/share/applications/YaST2/
для вдохновения (, чтобы выбрать соответствующую категорию, значок и т. д.)