我寫了一個小BASH腳本,它需要一個簡單的配置並抓取預配置的第三方存儲庫,並從它們下載某些軟件包。BASH:星號作爲參數
我現在遇到的問題是,當我在配置中使用星號時,它在執行腳本時需要任何目錄,並將我目錄中的所有文件作爲參數展開。我理解單引號和雙引號之間的區別,但似乎不管我做什麼,我都無法使其工作。也許有人可以幫我一個這個。這裏的腳本:
#!/bin/bash
CONFIGS="/opt/configs/repos/.repos/configs"
REPOS="/opt/configs/repos"
MASTER_REPO=extras
SYNCAPPS=(mysql)
for APP in ${SYNCAPPS[@]};do
. $CONFIGS/$APP
echo "$APP"
for RELEASE in {5..6};do
if [ $RELEASE == "5" ];then
for ARCH in {x86_64,i386};do
CMD="yumdownloader --disablerepo='*' --enablerepo=$UPSTREAM-$RELEASE-$ARCH -c $REPOS/.repos/$UPSTREAM-$RELEASE.repo --destdir=$REPOS/$MASTER_REPO/$RELEASE/$GEN_NAME/ $PACKAGES"
$CMD
echo ${CMD}
done
elif [ $RELEASE == "6" ];then
for ARCH in {x86_64,i386};do
CMD="yumdownloader --disablerepo='*' --enablerepo=$UPSTREAM-$RELEASE-$ARCH -c $REPOS/.repos/$UPSTREAM-$RELEASE.repo --destdir=$REPOS/$MASTER_REPO/$RELEASE/$GEN_NAME/ $PACKAGES"
$CMD
echo ${CMD}
done
fi
done
done
樣本配置(/opt/configs/repos/.repos/configs/mysql:
GEN_NAME=MySQL
UPSTREAM=mysql
PACKAGES=*
我有下載的軟件包沒有任何問題,當PACKAGES
選項設置爲*
其他任何東西,所以我將不會發布任何回購協議配置的(因爲我知道回購工作)
我現在的我是從運行此目錄:
# ls
mysql salt sysutils zabbix
當我運行該腳本:
# ./myscript.sh
mysql
yumdownloader --disablerepo='*' --enablerepo=mysql-5-x86_64 -c /opt/data/build/repos/.repos/mysql-5.repo --destdir=/opt/data/build/repos/extras/5/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-5-i386 -c /opt/data/build/repos/.repos/mysql-5.repo --destdir=/opt/data/build/repos/extras/5/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-6-x86_64 -c /opt/data/build/repos/.repos/mysql-6.repo --destdir=/opt/data/build/repos/extras/6/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-6-i386 -c /opt/data/build/repos/.repos/mysql-6.repo --destdir=/opt/data/build/repos/extras/6/MySQL/ mysql salt sysutils zabbix
我所要的輸出是什麼:
mysql
yumdownloader --disablerepo='*' --enablerepo=mysql-5-x86_64 -c /opt/data/build/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ *
yumdownloader --disablerepo='*' --enablerepo=mysql-5-i386 -c /opt/data/build/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ *
yumdownloader --disablerepo='*' --enablerepo=mysql-6-x86_64 -c /opt/data/build/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ *
yumdownloader --disablerepo='*' --enablerepo=mysql-6-i386 -c /opt/data/build/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ *
調試輸出就該運行而言,是在這裏:
mysql
+ for RELEASE in '{5..6}'
+ '[' 5 == 5 ']'
+ for ARCH in '{x86_64,i386}'
+ CMD='yumdownloader --disablerepo='\''*'\'' --enablerepo=mysql-5-x86_64 -c /opt/configs/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ *'
+ echo yumdownloader '--disablerepo='\''*'\''' --enablerepo=mysql-5-x86_64 -c /opt/configs/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-5-x86_64 -c /opt/configs/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ mysql salt sysutils zabbix
+ for ARCH in '{x86_64,i386}'
+ CMD='yumdownloader --disablerepo='\''*'\'' --enablerepo=mysql-5-i386 -c /opt/configs/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ *'
+ echo yumdownloader '--disablerepo='\''*'\''' --enablerepo=mysql-5-i386 -c /opt/configs/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-5-i386 -c /opt/configs/repos/.repos/mysql-5.repo --destdir=/opt/configs/repos/extras/5/MySQL/ mysql salt sysutils zabbix
+ for RELEASE in '{5..6}'
+ '[' 6 == 5 ']'
+ '[' 6 == 6 ']'
+ for ARCH in '{x86_64,i386}'
+ CMD='yumdownloader --disablerepo='\''*'\'' --enablerepo=mysql-6-x86_64 -c /opt/configs/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ *'
+ echo yumdownloader '--disablerepo='\''*'\''' --enablerepo=mysql-6-x86_64 -c /opt/configs/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-6-x86_64 -c /opt/configs/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ mysql salt sysutils zabbix
+ for ARCH in '{x86_64,i386}'
+ CMD='yumdownloader --disablerepo='\''*'\'' --enablerepo=mysql-6-i386 -c /opt/configs/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ *'
+ echo yumdownloader '--disablerepo='\''*'\''' --enablerepo=mysql-6-i386 -c /opt/configs/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ mysql salt sysutils zabbix
yumdownloader --disablerepo='*' --enablerepo=mysql-6-i386 -c /opt/configs/repos/.repos/mysql-6.repo --destdir=/opt/configs/repos/extras/6/MySQL/ mysql salt sysutils zabbix
謝謝提前 - 這真的把我扔了一圈...
它拼寫星號。 –
閱讀:http://mywiki.wooledge.org/BashFAQ/050。 – chepner