Вы должны установить правильный синтаксис выполнения.
$(Command)
или с обратными галочками
`Command`
В вашем примере вы пропустили этот команду ls ...
.И вам не хватает первой косой черты в вашем домашнем каталоге (в противном случае он будет работать только из корневого каталога /
).
Попробуйте:
#!/bin/bash
location () {
echo "/home/$1/dir"
}
count_files () {
# Get the count;
count=$(ls $(location "$1") | wc -l);
# Return the count value;
echo "$count";
}
# Call function and print the count result.
# Better you set the user here and not 'hardcoded' in a function.
echo $(count_files "user1")