我正在尝试创建一个shell脚本,我将最新的Atomic gotroot规则下载到我的服务器,解压缩,将它们复制到正确的文件夹等,
我一直在大部分时间都在阅读shell教程和论坛帖子,语法让我逃脱了其中的一些.我已经运行了所有这些命令,如果我手动运行它们,我知道它们有效.
我知道我需要开发一些错误检查,但我只是想让命令正确运行.目前的主要问题是wget命令的语法,我有关于缺少分号的错误,除以零,不支持的方案 - 我尝试了各种引用(单和双)和转义 - /"字符各种组合.
谢谢你的帮助.原始wget命令是
wget --user="jim" --password="xxx-yyy-zzz" "http://updates.atomicorp.com/channels/rules/subscription/VERSION"
#!/bin/sh
update_modsec_rules(){
wget=/usr/bin/wget
tar=/bin/tar
apachectl=/usr/bin/apache2ctl
TXT="Script Run Finished"
WORKING_DIR="/var/asl/updates"
TARGET_DIR="/usr/local/apache/conf/modsec_rules/"
EXISTING_FILES="/var/asl/updates/modsec/*"
EXISTING_ARCH="/var/asl/updates/modsec-*"
WGET_OPTS='--user=jim --password=xxx-yyy-zzz'
URL_BASE="http://updates.atomicorp.com/channels/rules/subscription"
# change to working directory and cleanup any downloaded files and extracted rules in modsec/ directory
cd $WORKING_DIR
rm -f $EXISTING_ARCH
rm -f $EXISTING_FILES
rm -f VERSION*
# wget to download VERSION file
$wget ${WGET_OPTS} "${URL_BASE}/VERSION"
# get current MODSEC_VERSION from VERSION file and save as variable
source VERSION
TARGET_DATE=$MODSEC_VERSION
echo $TARGET_DATE …Run Code Online (Sandbox Code Playgroud) 我已经研究了与此类似的主题,但并非完全符合我的期望。我有一个像下面这样的多维数组。
[code] => BILL
[assets] => Array
(
[en] => Array
(
[datatype] => My Assets
[data] => Array
(
[Corporate Equity] => 41
[Global Equity] => 24
[Fixed Income – Government] => 22
[Fixed Income – Corporate] => 8.1
[Other] => 3.57
)
)
)
Run Code Online (Sandbox Code Playgroud)
我想删除第一个内部数组,但保留值。将它们在数组中上移一级,使其看起来像这样。
[code] => BILL
[assets] => Array
(
[datatype] => My Assets
[data] => Array
(
[Corporate Equity] => 41
[Global Equity] => 24
[Fixed Income – Government] => 22
[Fixed Income – Corporate] …Run Code Online (Sandbox Code Playgroud)