Alright here goes nothing, let me know if this does not work.
Run with privilege script.sh
:
#!/bin/bash
## Test in a directory first
#export BASE_PATH='.'
export BASE_PATH='/dev'
## Device names
export KNAME_DRIVE='sda'
export KNAME_MMC='mmcblk0'
## Character between disk kname and partition number
export PREFIX_DRIVE_PART=''
export PREFIX_MMC_PART='p'
## Symlink for device
ln -s "${BASE_PATH}/${KNAME_DRIVE}" "${BASE_PATH}/${KNAME_MMC}"
## Symlinks for partitions
# Get only two specified columns.
# Filter for desired drive.
# Prints the partition kname.
# xargs -i iterating over lines, {} being the iterator's value
# $'' increasing readability.
# ${VAR1##${VAR2}} being value of first instance of string VAR2 being substracted from string VAR1
lsblk --raw --noheadings -o NAME,KNAME \
| grep "${KNAME_DRIVE}" \
| awk -v kname_drive="${KNAME_DRIVE}" '{
if ($1 != kname_drive) {
print $2
}
}' \
| xargs -i bash -c $'KNAME_DRIVE_PART="{}";
PATH_DESTINATION="${BASE_PATH}/${KNAME_DRIVE_PART}";
PATH_SYMLINK_FILE="${BASE_PATH}/${KNAME_MMC}${PREFIX_MMC_PART}${KNAME_DRIVE_PART##${KNAME_DRIVE}${PREFIX_DRIVE_PART}}";
ln -s ${PATH_DESTINATION} ${PATH_SYMLINK_FILE};
'