Хорошо. Вы должны добавить проверку, установлены ли позиционные переменные или нет. Если нет, то попросите использовать ввод.
Примерно так:
#!/bin/sh
[ -n "$1" ] && ENVIRONMENT_NAME=$1 || { echo -n "Enter environment name: "; read ENVIRONMENT_NAME; }
if [ -n "$2" ]; then
EMAIL=$2
else
echo -n "Enter email: "
read EMAIL
fi
echo "env=$ENVIRONMENT_NAME"
echo "email=$EMAIL"
Обратите внимание, что я использовал разные конструкции для условной проверки, просто чтобы показать, что есть разные способы, и вы можете выбрать тот, который вам удобнее.
Также обратите внимание, что вариант с || &&
следует использовать более осторожно, так как он может упасть до ||...
даже в случае, если что-то пойдет не так в части между &&.. ||
.
Можно пойти и наоборот. Игнорировать электронные письма:
cut -d'<' -f1 names.txt | sort -fu
Это обрезает строку по разделителю <
и печатает первое поле, сортирует (без учета регистра-f
)и затем сохраняет только первое из имен, которые отличаются только своим регистром (также игнорируя случай с-u
).