Передача переменной сценария Bash с разделителем - PullRequest
0 голосов
/ 06 апреля 2019

Я очень новичок в скриптах bash. Я хочу создать скрипт, который анализирует переменную, которая содержит тире и использует каждое проанализированное значение для передачи для выполнения дополнительной функции.

например:

project="Acc-Account-Profile_info"
for i in ($project |sed 's/-/ /g')
do
    case $i in ($project |sed 's/-/ /g')
        echo DeptName = $i
        shift
        ;;
    case $i in ($project |sed 's/-/ /g')
        echo GroupName= = $i
        shift
        ;;
    case $i in ($project |sed 's/-/ /g')
        echo projectName= = $i
        shift
        ;;
    esac
done

Я хочу, чтобы значения были такими: -

DeptName = ACC
GroupName = Account
projectName= Profile_info

сейчас я получаю синтаксическую ошибку. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

2 голосов
/ 06 апреля 2019

почему вы не используете read?

project='Acc-Account-Profile_info'
IFS=- read -r DeptName GroupName projectName <<< "$project"
echo "DeptName = $DeptName"
echo "GroupName = $GroupName"
echo "projectName = $projectName"
0 голосов
/ 06 апреля 2019
IFS='-';set -f;project="Acc-Account-Profile_info"
for i in $project
{
case $i in
Account)
  GroupName=$i
  echo $GroupName;;
Acc) DeptName=$i
   echo $DeptName;;
Profile_info)
  projectName=$i
  echo $projectName;;
esac
}
unset IFS;set +f

лучше использовать набор - для большего количества входных данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...