【问题标题】:check for installed configuration profiles failing to recognize matching names检查无法识别匹配名称的已安装配置文件
【发布时间】:2020-08-08 04:30:43
【问题描述】:

这是我正在构建的一个更大的诊断工具的一部分。我在工作中管理 Mac,我需要确认所有配置文件都已安装或显示缺少的配置文件列表。脚本不是我的强项,但我正在努力学习。经过几天的反复试验,我终于能够让代码工作,但我得到的输出没有意义。我对大多数配置文件都非常有效的比较检查正在返回一些错误的失败。我知道这确实是我的失败,但我不是电脑,所以很明显我缺少一个细节。

这里是代码的概要...

$profileList 是一个控制数组,其中包含我要确保存在的配置文件的名称。我通过运行命令创建了这个列表:

profiles -C -v | grep attribute | awk '/name/{$1=$2=$3=""; print $0}' | sed -e 's/^[ \t]*//'

在“已知良好”的机器上并将返回的名称放在引号中。 $missingProfiles 是一个空数组,我将在其中存储未找到的配置文件的名称,以便它们可以显示在报告中。

我稍微修改了代码以排除比较问题。只是在更长的脚本中删除了一些设置变量以供在其他地方使用的行,并添加了一些回显以查看实际比较的内容。

#! /bin/bash

## Configuration Profiles
profileList=( "Chromium Edge" "Privacy Preferences Policy Control" "Security and Privacy" "Enterprise Connect" "System Restrictions" "Chrome Whitelist" "Network Configuration 2.0" "Chrome Extensions" "MAU_AppArray2019" "Approved Kernel Extensions" "Bomgar" "Office ProPlus 365" "ATP" "Chromium Edge Allowlist" "ScreenSaver Settings" "Disable Chrome Auto-Updates" "ShowDocStageOnLaunch" "MAU_AppArray" "MDM Profile" "macOSLAPS" "Browser Homepage" "Microsoft Auto Update Production""Office Preference Keys" )
missingProfiles=()

for i in "${profileList[@]}"; do
    checkProfile=$( profiles -C -v | awk -F: '/attribute: name/{print $NF}' | grep "$i" | sed -e 's/^[ \t]*//' )
    if [ ! "$checkProfile" == "$i" ]; then
        missingProfiles+=( "$i" );
        echo "i is $i"
        echo "checkProfile is $checkProfile"
    elif [ "$checkProfile" == "$i" ]; then
        echo "found $i"
        echo "found $checkProfile"
    fi
done

这个的输出是:

found ScreenSaver Settings
found ScreenSaver Settings
found Disable Chrome Auto-Updates
found Disable Chrome Auto-Updates
found Chrome Whitelist
found Chrome Whitelist
i is MAU_AppArray                                       <-- why is it trying to compare this
checkProfile is MAU_AppArray2019                        <-- with this which is not the same?
MAU_AppArray                                            <-- where did this come from???
found MDM Profile
found MDM Profile
found ShowDocStageOnLaunch
found ShowDocStageOnLaunch
found macOSLAPS
found macOSLAPS
found Microsoft Auto Update Production
found Microsoft Auto Update Production
found Office Preference Keys
found Office Preference Keys
found ATP
found ATP
found Approved Kernel Extensions
found Approved Kernel Extensions
i is Chromium Edge                                      <-- "Chromium Edge" doesn't match
checkProfile is Chromium Edge                           <-- "Chromium Edge"????? huh?!
Chromium Edge Allowlist                                 <-- Again, unexpected...
found Privacy Preferences Policy Control
found Privacy Preferences Policy Control
found Security and Privacy
found Security and Privacy
found Enterprise Connect
found Enterprise Connect
found Browser Homepage
found Browser Homepage
found System Restrictions
found System Restrictions
found Network Configuration 2.0
found Network Configuration 2.0
found Chrome Extensions
found Chrome Extensions
found MAU_AppArray2019
found MAU_AppArray2019
found Office ProPlus 365
found Office ProPlus 365
found Chromium Edge Allowlist
found Chromium Edge Allowlist
found Bomgar
found Bomgar

我是如此接近......我希望这里的人可以看看并找出导致这种情况的原因。

编辑

添加配置文件的输出 -C -v | grep '属性:' 根据要求

_computerlevel[1] attribute: name: Chrome Whitelist
_computerlevel[1] attribute: configurationDescription: 
_computerlevel[1] attribute: installationDate: 2019-11-27 16:57:40 +0000
_computerlevel[1] attribute: organization: CompanyName Worldwide
_computerlevel[1] attribute: profileIdentifier: F3A66CB9-6847-4886-BAEF-D7577AEB816B
_computerlevel[1] attribute: profileUUID: F3A66CB9-6847-4886-BAEF-D7577AEB816B
_computerlevel[1] attribute: profileType: Configuration
_computerlevel[1] attribute: removalDisallowed: TRUE
_computerlevel[1] attribute: version: 1
_computerlevel[1] attribute: containsComputerItems: TRUE
_computerlevel[1] attribute: internaldata: TRUE
_computerlevel[2] attribute: name: Network Configuration 2.0
_computerlevel[2] attribute: configurationDescription: 
_computerlevel[2] attribute: installationDate: 2019-11-27 06:23:15 +0000
_computerlevel[2] attribute: organization: CompanyName Worldwide
_computerlevel[2] attribute: profileIdentifier: 524A33F3-6E6D-4A71-8404-E51D605BBF80
_computerlevel[2] attribute: profileUUID: 524A33F3-6E6D-4A71-8404-E51D605BBF80
_computerlevel[2] attribute: profileType: Configuration
_computerlevel[2] attribute: removalDisallowed: TRUE
_computerlevel[2] attribute: version: 1
_computerlevel[2] attribute: containsComputerItems: TRUE
_computerlevel[2] attribute: internaldata: TRUE
_computerlevel[3] attribute: name: Chrome Extensions
_computerlevel[3] attribute: configurationDescription: 
_computerlevel[3] attribute: installationDate: 2020-02-12 16:33:47 +0000
_computerlevel[3] attribute: organization: CompanyName Worldwide
_computerlevel[3] attribute: profileIdentifier: 7A2F528D-D5FD-4928-A70D-0B0FC9A91298
_computerlevel[3] attribute: profileUUID: 7A2F528D-D5FD-4928-A70D-0B0FC9A91298
_computerlevel[3] attribute: profileType: Configuration
_computerlevel[3] attribute: removalDisallowed: TRUE
_computerlevel[3] attribute: version: 1
_computerlevel[3] attribute: containsComputerItems: TRUE
_computerlevel[3] attribute: internaldata: TRUE
_computerlevel[4] attribute: name: MAU_AppArray2019
_computerlevel[4] attribute: configurationDescription: AppArray.plist registers the Office apps with MAU so they will be recognized and updated if never launched
_computerlevel[4] attribute: installationDate: 2020-03-06 15:16:14 +0000
_computerlevel[4] attribute: organization: CompanyName Worldwide
_computerlevel[4] attribute: profileIdentifier: 4577E363-29A6-45D2-BF8F-79008DA49D13
_computerlevel[4] attribute: profileUUID: 4577E363-29A6-45D2-BF8F-79008DA49D13
_computerlevel[4] attribute: profileType: Configuration
_computerlevel[4] attribute: removalDisallowed: TRUE
_computerlevel[4] attribute: version: 1
_computerlevel[4] attribute: containsComputerItems: TRUE
_computerlevel[4] attribute: internaldata: TRUE
_computerlevel[5] attribute: name: Approved Kernel Extensions
_computerlevel[5] attribute: configurationDescription: 
_computerlevel[5] attribute: installationDate: 2020-04-09 12:54:37 +0000
_computerlevel[5] attribute: organization: CompanyName Worldwide
_computerlevel[5] attribute: profileIdentifier: 9B96370D-BDD1-418E-B1DC-17DE0529F11D
_computerlevel[5] attribute: profileUUID: 9B96370D-BDD1-418E-B1DC-17DE0529F11D
_computerlevel[5] attribute: profileType: Configuration
_computerlevel[5] attribute: removalDisallowed: TRUE
_computerlevel[5] attribute: version: 1
_computerlevel[5] attribute: containsComputerItems: TRUE
_computerlevel[5] attribute: internaldata: TRUE
_computerlevel[6] attribute: name: Bomgar
_computerlevel[6] attribute: configurationDescription: 
_computerlevel[6] attribute: installationDate: 2020-02-18 18:38:46 +0000
_computerlevel[6] attribute: organization: CompanyName Worldwide
_computerlevel[6] attribute: profileIdentifier: 73ddbf1a-4f1e-48b9-bd24-69f8dc420aaa
_computerlevel[6] attribute: profileUUID: 73ddbf1a-4f1e-48b9-bd24-69f8dc420aaa
_computerlevel[6] attribute: profileType: com.apple.TCC.configuration-profile-policy
_computerlevel[6] attribute: removalDisallowed: TRUE
_computerlevel[6] attribute: version: 1
_computerlevel[6] attribute: containsComputerItems: TRUE
_computerlevel[6] attribute: internaldata: TRUE
_computerlevel[7] attribute: name: Office ProPlus 365
_computerlevel[7] attribute: configurationDescription: 
_computerlevel[7] attribute: installationDate: 2019-11-27 16:57:47 +0000
_computerlevel[7] attribute: organization: CompanyName Worldwide
_computerlevel[7] attribute: profileIdentifier: CDEB0EFC-453B-4918-8923-4B21F792F00D
_computerlevel[7] attribute: profileUUID: CDEB0EFC-453B-4918-8923-4B21F792F00D
_computerlevel[7] attribute: profileType: Configuration
_computerlevel[7] attribute: removalDisallowed: TRUE
_computerlevel[7] attribute: version: 1
_computerlevel[7] attribute: containsComputerItems: TRUE
_computerlevel[7] attribute: internaldata: TRUE
_computerlevel[8] attribute: name: ATP
_computerlevel[8] attribute: configurationDescription: 
_computerlevel[8] attribute: installationDate: 2020-03-16 13:43:15 +0000
_computerlevel[8] attribute: organization: CompanyName Worldwide
_computerlevel[8] attribute: profileIdentifier: FA6F8249-AACA-4EF9-912F-56DD498EB429
_computerlevel[8] attribute: profileUUID: FA6F8249-AACA-4EF9-912F-56DD498EB429
_computerlevel[8] attribute: profileType: Configuration
_computerlevel[8] attribute: removalDisallowed: TRUE
_computerlevel[8] attribute: version: 1
_computerlevel[8] attribute: containsComputerItems: TRUE
_computerlevel[8] attribute: internaldata: TRUE
_computerlevel[9] attribute: name: Chromium Edge Allowlist
_computerlevel[9] attribute: configurationDescription: 
_computerlevel[9] attribute: installationDate: 2020-03-16 16:09:28 +0000
_computerlevel[9] attribute: organization: CompanyName Worldwide
_computerlevel[9] attribute: profileIdentifier: F2B92C2D-69CC-4C15-AE52-F5986AD49D21
_computerlevel[9] attribute: profileUUID: F2B92C2D-69CC-4C15-AE52-F5986AD49D21
_computerlevel[9] attribute: profileType: Configuration
_computerlevel[9] attribute: removalDisallowed: TRUE
_computerlevel[9] attribute: version: 1
_computerlevel[9] attribute: containsComputerItems: TRUE
_computerlevel[9] attribute: internaldata: TRUE
_computerlevel[10] attribute: name: ScreenSaver Settings
_computerlevel[10] attribute: configurationDescription: 
_computerlevel[10] attribute: installationDate: 2019-11-27 16:57:49 +0000
_computerlevel[10] attribute: organization: CompanyName Worldwide
_computerlevel[10] attribute: profileIdentifier: 94536F86-3AAD-4F4B-87F9-CE338543F53F
_computerlevel[10] attribute: profileUUID: 94536F86-3AAD-4F4B-87F9-CE338543F53F
_computerlevel[10] attribute: profileType: Configuration
_computerlevel[10] attribute: removalDisallowed: TRUE
_computerlevel[10] attribute: version: 1
_computerlevel[10] attribute: containsComputerItems: TRUE
_computerlevel[10] attribute: internaldata: TRUE
_computerlevel[11] attribute: name: Disable Chrome Auto-Updates
_computerlevel[11] attribute: configurationDescription: 
_computerlevel[11] attribute: installationDate: 2019-11-27 16:57:46 +0000
_computerlevel[11] attribute: organization: CompanyName Worldwide
_computerlevel[11] attribute: profileIdentifier: F23C4E5B-F91F-4917-A6B3-DA77E7883A38
_computerlevel[11] attribute: profileUUID: F23C4E5B-F91F-4917-A6B3-DA77E7883A38
_computerlevel[11] attribute: profileType: Configuration
_computerlevel[11] attribute: removalDisallowed: TRUE
_computerlevel[11] attribute: version: 1
_computerlevel[11] attribute: containsComputerItems: TRUE
_computerlevel[11] attribute: internaldata: TRUE
_computerlevel[12] attribute: name: ShowDocStageOnLaunch
_computerlevel[12] attribute: configurationDescription: suppress design galleries for all Office products (PowerPoint, Word, Excel)
_computerlevel[12] attribute: installationDate: 2020-02-18 16:25:13 +0000
_computerlevel[12] attribute: organization: CompanyName Worldwide
_computerlevel[12] attribute: profileIdentifier: D9F5A6EF-0CDB-4FD8-9476-D3797CE09F1A
_computerlevel[12] attribute: profileUUID: D9F5A6EF-0CDB-4FD8-9476-D3797CE09F1A
_computerlevel[12] attribute: profileType: Configuration
_computerlevel[12] attribute: removalDisallowed: TRUE
_computerlevel[12] attribute: version: 1
_computerlevel[12] attribute: containsComputerItems: TRUE
_computerlevel[12] attribute: internaldata: TRUE
_computerlevel[13] attribute: name: MAU_AppArray
_computerlevel[13] attribute: configurationDescription: AppArray.plist registers the Office apps with MAU so they will be recognized and updated if never launched
_computerlevel[13] attribute: installationDate: 2019-11-27 16:57:39 +0000
_computerlevel[13] attribute: organization: CompanyName Worldwide
_computerlevel[13] attribute: profileIdentifier: F5C37198-E0F5-419F-9CDA-4E25168B5B52
_computerlevel[13] attribute: profileUUID: F5C37198-E0F5-419F-9CDA-4E25168B5B52
_computerlevel[13] attribute: profileType: Configuration
_computerlevel[13] attribute: removalDisallowed: TRUE
_computerlevel[13] attribute: version: 1
_computerlevel[13] attribute: containsComputerItems: TRUE
_computerlevel[13] attribute: internaldata: TRUE
_computerlevel[14] attribute: name: MDM Profile
_computerlevel[14] attribute: configurationDescription: MDM Profile for mobile device management
_computerlevel[14] attribute: installationDate: 2019-11-27 16:57:05 +0000
_computerlevel[14] attribute: organization: CompanyName Worldwide
_computerlevel[14] attribute: profileIdentifier: 00000000-0000-0000-A000-4A414D460003
_computerlevel[14] attribute: profileUUID: 00000000-0000-0000-A000-4A414D460003
_computerlevel[14] attribute: profileType: Configuration
_computerlevel[14] attribute: removalDisallowed: FALSE
_computerlevel[14] attribute: version: 1
_computerlevel[14] attribute: containsComputerItems: TRUE
_computerlevel[14] attribute: internaldata: TRUE
_computerlevel[15] attribute: name: macOSLAPS
_computerlevel[15] attribute: configurationDescription: 
_computerlevel[15] attribute: installationDate: 2019-11-27 16:57:48 +0000
_computerlevel[15] attribute: organization: CompanyName Worldwide
_computerlevel[15] attribute: profileIdentifier: A39A88CD-E2AE-4C20-A4E6-78807E066EA6
_computerlevel[15] attribute: profileUUID: A39A88CD-E2AE-4C20-A4E6-78807E066EA6
_computerlevel[15] attribute: profileType: Configuration
_computerlevel[15] attribute: removalDisallowed: TRUE
_computerlevel[15] attribute: version: 1
_computerlevel[15] attribute: containsComputerItems: TRUE
_computerlevel[15] attribute: internaldata: TRUE
_computerlevel[16] attribute: name: Browser Homepage
_computerlevel[16] attribute: configurationDescription: 
_computerlevel[16] attribute: installationDate: 2019-11-27 16:57:48 +0000
_computerlevel[16] attribute: organization: CompanyName Worldwide
_computerlevel[16] attribute: profileIdentifier: 0BB2B3A8-3F25-4C98-AB55-10E0DCD17C60
_computerlevel[16] attribute: profileUUID: 0BB2B3A8-3F25-4C98-AB55-10E0DCD17C60
_computerlevel[16] attribute: profileType: Configuration
_computerlevel[16] attribute: removalDisallowed: TRUE
_computerlevel[16] attribute: version: 1
_computerlevel[16] attribute: containsComputerItems: TRUE
_computerlevel[16] attribute: internaldata: TRUE
_computerlevel[17] attribute: name: Microsoft Auto Update Production
_computerlevel[17] attribute: configurationDescription: 
_computerlevel[17] attribute: installationDate: 2020-04-20 13:29:20 +0000
_computerlevel[17] attribute: organization: CompanyName Worldwide
_computerlevel[17] attribute: profileIdentifier: 9187EFD8-7FCF-4848-942A-F7E06BBF08CF
_computerlevel[17] attribute: profileUUID: 9187EFD8-7FCF-4848-942A-F7E06BBF08CF
_computerlevel[17] attribute: profileType: Configuration
_computerlevel[17] attribute: removalDisallowed: TRUE
_computerlevel[17] attribute: version: 1
_computerlevel[17] attribute: containsComputerItems: TRUE
_computerlevel[17] attribute: internaldata: TRUE
_computerlevel[18] attribute: name: Office Preference Keys
_computerlevel[18] attribute: configurationDescription: 
_computerlevel[18] attribute: installationDate: 2019-11-27 16:58:01 +0000
_computerlevel[18] attribute: organization: CompanyName Worldwide
_computerlevel[18] attribute: profileIdentifier: D369D410-0E42-44CD-BBA5-C972C3873A67
_computerlevel[18] attribute: profileUUID: D369D410-0E42-44CD-BBA5-C972C3873A67
_computerlevel[18] attribute: profileType: Configuration
_computerlevel[18] attribute: removalDisallowed: TRUE
_computerlevel[18] attribute: version: 1
_computerlevel[18] attribute: containsComputerItems: TRUE
_computerlevel[18] attribute: internaldata: TRUE
_computerlevel[19] attribute: name: Chromium Edge
_computerlevel[19] attribute: configurationDescription: 
_computerlevel[19] attribute: installationDate: 2020-03-16 16:09:27 +0000
_computerlevel[19] attribute: organization: CompanyName Worldwide
_computerlevel[19] attribute: profileIdentifier: 181BC800-F3E4-4760-BA33-515C938B5D6D
_computerlevel[19] attribute: profileUUID: 181BC800-F3E4-4760-BA33-515C938B5D6D
_computerlevel[19] attribute: profileType: Configuration
_computerlevel[19] attribute: removalDisallowed: TRUE
_computerlevel[19] attribute: version: 1
_computerlevel[19] attribute: containsComputerItems: TRUE
_computerlevel[19] attribute: internaldata: TRUE
_computerlevel[20] attribute: name: Privacy Preferences Policy Control
_computerlevel[20] attribute: configurationDescription: Profile for Jamf management framework
_computerlevel[20] attribute: installationDate: 2019-11-27 16:58:03 +0000
_computerlevel[20] attribute: organization: Jamf Software
_computerlevel[20] attribute: profileIdentifier: com.jamfsoftware.tcc.management
_computerlevel[20] attribute: profileUUID: com.jamfsoftware.tcc.management
_computerlevel[20] attribute: profileType: Configuration
_computerlevel[20] attribute: removalDisallowed: TRUE
_computerlevel[20] attribute: version: 1
_computerlevel[20] attribute: containsComputerItems: TRUE
_computerlevel[20] attribute: internaldata: TRUE
_computerlevel[21] attribute: name: Security and Privacy
_computerlevel[21] attribute: configurationDescription: 
_computerlevel[21] attribute: installationDate: 2019-11-27 16:57:41 +0000
_computerlevel[21] attribute: organization: CompanyName Worldwide
_computerlevel[21] attribute: profileIdentifier: A3AD439A-5E19-4A62-BC3A-F1820865D3A9
_computerlevel[21] attribute: profileUUID: A3AD439A-5E19-4A62-BC3A-F1820865D3A9
_computerlevel[21] attribute: profileType: Configuration
_computerlevel[21] attribute: removalDisallowed: TRUE
_computerlevel[21] attribute: version: 1
_computerlevel[21] attribute: containsComputerItems: TRUE
_computerlevel[21] attribute: internaldata: TRUE
_computerlevel[22] attribute: name: Enterprise Connect
_computerlevel[22] attribute: configurationDescription: 
_computerlevel[22] attribute: installationDate: 2019-11-27 16:57:38 +0000
_computerlevel[22] attribute: organization: CompanyName Worldwide
_computerlevel[22] attribute: profileIdentifier: 50273D5A-D5A8-489D-8909-AD9B1F79B9E7
_computerlevel[22] attribute: profileUUID: 50273D5A-D5A8-489D-8909-AD9B1F79B9E7
_computerlevel[22] attribute: profileType: Configuration
_computerlevel[22] attribute: removalDisallowed: TRUE
_computerlevel[22] attribute: version: 1
_computerlevel[22] attribute: containsComputerItems: TRUE
_computerlevel[22] attribute: internaldata: TRUE
_computerlevel[23] attribute: name: System Restrictions
_computerlevel[23] attribute: configurationDescription: Disables System Preferences options.
_computerlevel[23] attribute: installationDate: 2020-04-02 14:04:43 +0000
_computerlevel[23] attribute: organization: CompanyName Worldwide
_computerlevel[23] attribute: profileIdentifier: 35EA461C-9D98-40FA-A3E0-4CC297C9D601
_computerlevel[23] attribute: profileUUID: 35EA461C-9D98-40FA-A3E0-4CC297C9D601
_computerlevel[23] attribute: profileType: Configuration
_computerlevel[23] attribute: removalDisallowed: TRUE
_computerlevel[23] attribute: version: 1
_computerlevel[23] attribute: containsComputerItems: TRUE
_computerlevel[23] attribute: internaldata: TRUE
_computerlevel[24] attribute: name: CompanyName Email Signature Creator
_computerlevel[24] attribute: configurationDescription: 
_computerlevel[24] attribute: installationDate: 2019-11-27 16:57:52 +0000
_computerlevel[24] attribute: organization: CompanyName Worldwide
_computerlevel[24] attribute: profileIdentifier: 1da8b849-729a-4bb2-9fee-08886205a19b
_computerlevel[24] attribute: profileUUID: 1da8b849-729a-4bb2-9fee-08886205a19b
_computerlevel[24] attribute: profileType: com.apple.TCC.configuration-profile-policy
_computerlevel[24] attribute: removalDisallowed: TRUE
_computerlevel[24] attribute: version: 1
_computerlevel[24] attribute: containsComputerItems: TRUE
_computerlevel[24] attribute: internaldata: TRUE

【问题讨论】:

  • 你能添加profiles -C -v的完整输出,或者只是profiles -C -v | grep 'attribute:'的输出
  • 编辑添加,因为评论太长了。
  • 我认为你必须修剪$NF,像这样:gsub(/^ +| +$/,"",$NF); print $NF(参见:stackoverflow.com/questions/9985528/…
  • 我尝试更改行 checkProfile=$(profiles -C -v | awk -F: '/attribute: name/{print $NF}' | grep "$i" | sed -e ' s/^[ \t]*//' ) 到 checkProfile=$( profiles -C -v | awk -F: '/attribute: name/{gsub(/^ +| +$/,"",$NF) ; print $NF}' | grep "$i" | sed -e 's/^[ \t]*//' ) 并没有看到任何变化。对于所有修剪和过滤的东西,我对这里的语法感到不知所措。
  • 虽然有些事情可能比这个解决方案“更干净”,但我现在没有选择。希望其他人可以分享想法。

标签: bash macos awk sed grep


【解决方案1】:

我确实看过您的脚本,然后将其重写为:

#! /bin/bash

## Configuration Profiles
profileList=( "Chromium Edge" "Privacy Preferences Policy Control" "Security and Privacy" "Enterprise Connect" "System Restrictions" "Chrome Whitelist" "Network Configuration 2.0" "Chrome Extensions" "MAU_AppArray2019" "Approved Kernel Extensions" "Bomgar" "Office ProPlus 365" "ATP" "Chromium Edge Allowlist" "ScreenSaver Settings" "Disable Chrome Auto-Updates" "ShowDocStageOnLaunch" "MAU_AppArray" "MDM Profile" "macOSLAPS" "Browser Homepage" "Microsoft Auto Update Production" "Office Preference Keys" )
missingProfiles=()

tmpfile=/tmp/$$.tmp
profiles -C -v | awk -F: '/attribute: name/{ gsub(/^ | +$/,"",$NF); print $NF}' > $tmpfile

for i in "${profileList[@]}"; do
    echo -n Checking profile: "$i"
    c=$( grep -c "$i" $tmpfile )
    if [ $c -gt 0 ];
    then
        echo " FOUND"
    else
        echo " NOT FOUND"
        missingProfiles+=( "$i" );
    fi
done
echo MISSINGPROFILES: $missingProfiles

此脚本将首先在临时文件中收集“配置文件名称”

然后检查 (grep -c) 来自 $profilesList 的配置文件在此 tmpfile 中的次数。

创建了一个临时文件,我目前没有删除它,但如果您愿意,可以在此脚本末尾添加rm $tmpfile

【讨论】:

  • 我通过更改 profileList 中的一些控制项名称来更仔细地测试了这一点,并且没有出现预期的失败。
  • 更多测试......它正在工作。我很困惑为什么我看到了意外的行为,但很高兴这似乎奏效了。我不在乎它是否干净,我只需要一致的东西。
猜你喜欢
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
  • 2023-01-31
  • 2022-12-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多