我对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
现在我不断收到语法错误。任何帮助将不胜感激。
答案 0 :(得分:2)
您为什么不使用read
?
project='Acc-Account-Profile_info'
IFS=- read -r DeptName GroupName projectName <<< "$project"
echo "DeptName = $DeptName"
echo "GroupName = $GroupName"
echo "projectName = $projectName"
答案 1 :(得分:0)
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
更好的使用方式-用于输入更多数据