简体   繁体   English

带分隔符的Bash脚本传递变量

[英]Bash Script Passing Variable with a delimiter

I am very new to bash scripting. 我对bash脚本非常陌生。 I want to create a script that parses a variable that contains dashes and uses each parsed value to pass on to do additional function. 我想创建一个脚本,该脚本解析包含破折号的变量,并使用每个解析后的值继续执行其他功能。

ex: 例如:

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

I want the values to be like:- 我希望这些值像:

DeptName = ACC
GroupName = Account
projectName= Profile_info

right now I keep getting syntax error. 现在,我不断收到语法错误。 Any help would be greatly appreciated. 任何帮助将不胜感激。

why don't you use read ? 你为什么不使用read

project='Acc-Account-Profile_info'
IFS=- read -r DeptName GroupName projectName <<< "$project"
echo "DeptName = $DeptName"
echo "GroupName = $GroupName"
echo "projectName = $projectName"
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

better use set -- for more input data 更好的使用集-用于更多输入数据

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM