Articles of 庆典

将包含引号的bashvariables插入到命令中会将其打破

我正在尝试将docker命令的一些部分拆分成bashvariables。 我以前的工作很好: DOCKER_ID=$(docker run -e CGO_ENABLED=true -e LDFLAGS='-extldflags "-static"' -v $pkgPath:/src …etc) 把-e标志放入一个variables中并试图使用它: BUILDER_ARGS="-e CGO_ENABLED=true -e LDFLAGS='-extldflags \"-static\"'" DOCKER_ID=$(docker run $BUILDER_ARGS -v $pkgPath:/src …etc) 第二个版本给我错误: docker: Error parsing reference: "\"-static\"'" is not a valid repository/tag. 这让我觉得我试图插入的variables正在被破坏。

variables在循环之外丢失

我试图使用mysqldump备份我的数据库,而忽略了一些variables中定义的表,但在循环时,我得到了最后一个表名,它被覆盖,我如何将表存储在一个variables,并得到他们在循环后? ignoreTables=('visitors_15012016 visitors_Original') for line in $ignoreTables do echo 'mysqldump –ignore-table='$line done echo 'li '$line // here I got "visitors_Original" mysqldump –log-error=/var/log/mysql-dump/dump.log -u USER -pPASSWD DBName $line | bzip2 > /path2file/file.sql.bz2 提前致谢

Bash删除完全匹配的variables,并searchstring忽略大小写

第一个查询: 我有一个文本文件username.txt包含 user1 user2 user3 我的Bash文件如下> test.sh #!/bin/bash # REMOVE user which donot have any COMBLIMIT num=0 cat /tmp/username.txt | while read users do num=$[$num+1] USERID=`echo $users | awk '{print $1}'` SRVID=`mysql -uxxx -pxxx -e "use radius; SELECT srvid FROM radius.rm_users WHERE rm_users.username = '$USERID';" |awk 'FNR == 2 {print $1}'` COMBLIMITCHECK=`mysql -uxxx -pxxx -e […]

大规模脚本修改

我已经inheritance了一个包含超过100倍的shell脚本的项目,这个脚本遍布在一个相当大的文件系统中。 我正在寻找一个干净的方式来查找所有.sh文件在目录及其子目录中,并用#!/bin/bash.*replace: #!/bin/bash +x echo "[$(date +%H:%M:%S)] PWD:$PWD — $(dirname "$0")/$(basename "$(test -L "$0" && readlink "$0" || echo "$0")")" >> /script-log 我目前使用崇高来完成版本控制中的内容的任务…但是,这并不帮助我已经部署的项目。 我想组合find + grep + awk会这样做,但我不太清楚如何完成它。

如何在bash内buildgetopts中使用ARGS

我正在尝试使用bash内buildgetopts来parsinginput参数。 getopts OPTSTRING VARNAME [ARGS…] 我可以看到很多关于如何使用OPTSTRING和VARNAME的例子,但是我一直没能findARGS如何使用的单个工作例子。 有人用这个吗?

BASH脚本 – expression式中的语法错误

我遇到了一个我无法弄清楚的问题。 我有一个通过目录recursion的BASH脚本,并将当前date与文件的文件修改时间进行比较。 如果超过一定的年龄,文件会被压缩。 我收到以下错误: ./serversync.sh: line 87: 1324308130-1323116622 1323581504: syntax error in expression (error token is "1323581504") 下面引用了运行在此处的代码段: #If the file doesn't have a matching .gz file, compress it do if [ ! -e ${FILE}.gz ] then echo "Matching Gzip doesn't exist for $FILE" echo Checking to see if compression needed #test to make sure […]

BASH语法从string中提取参数

我不是一个BASH和/或grep / AWK专家,所以希望有人可以快速帮助我这个简单的查询。 考虑下面的string: XenCenter.CustomFields.autostart:120; last_shutdown_time:20120418T11:24:32Z; last_shutdown_action:毁灭; last_shutdown_initiator:external; last_shutdown_reason:暂停; import_task:OpaqueRef:1168d51a-e1ab-b02a-0db7-e6f9bd8fd269; mac_seed:778079d8-5917-c5ce-4800-ee4321f3ed70 如何提取“autostart:120”子串上的“120”位? 注意:上述string中“XenCenter.CustomFields.autostart:120”的位置和/或顺序可能会改变,所以不能依赖它作为第n个字

我可以定义组特定的环境variables吗?

我想为特定组的所有用户设置一些环境variables。 我可以修改组中所有用户的.bash_profile,但是这对于未来的新用户不起作用,因此我想在这种/ etc / profile中插入一个if语句: if [`id -G` -eq GROUP_ID]; then export PATH=$PATH:… fi 但是,我有问题,因为用户属于多个组。 任何想法?

调用查找正则expression式的variables

有没有办法以下面的方式调用variables? 在这种情况下X = $(date – date=昨天+%Y-%m-%d) echo $ X – > 2012-07-26 下面的命令可以工作,但即使date是在25考虑。 意味着$ X被认为是null并且select*。 有没有一种方法专门在下面的地方$ X调用该variables? 找 。 -maxdepth 1 -type f -regex'。 (/\asyncprocessor.log .'$X' \ | /Renewal.log。'$ X' \ | /Scheduler.log。'$ X' \ | /smsprocessor.log。'$ X' \ | /Subscription.log 。'$ X' )。*'-exec ls -ltr {} \;

Bash:variables名称中的variablesreplace与默认值

我有以下variables: # config file MYVAR_DEFAULT=123 MYVAR_FOO=456 #MYVAR_BAR unset # program USER_INPUT=FOO TARGET_VAR=<need to be set> 如果USER_INPUT是“foo”,我想TARGET_VAR是MYVAR_FOO ( TARGET_VAR = 456)的值。 如果USER_INPUT是“bar”,我想将TARGET_VAR设置为MYVAR_DEFAULT (123),因为MYVAR_BAR未设置。 我更喜欢它是sh兼容和作为替代string。 但它也可能是bash兼容和/或在一个函数。 我有这些片段: # Default values for variable (sh-compatible) echo ${MYVAR_FOO-$MYVAR_DEFAULT} # Uppercase (bash compatible) echo ${USER_INPUT^^} 我需要这样的东西: TARGET_VAR="${MYVAR_${USER_INPUT^^}-$MYVAR_DEFAULT}" # or somecommand -foo "${MYVAR_${USER_INPUT^^}-$MYVAR_DEFAULT}" 这是在多个“configuration文件”之间切换一堆variables。 在这个例子中, FOO和BAR是configuration文件。 新的configuration文件应该很容易被添加,在这个例子中,会有一个名为BAZ的隐式configuration文件,所有的variables都是它们的默认值。 不幸的是,这并不容易。 你有解决这个问题的想法吗? 在此先感谢,克里斯