【linux – Bash 19个字符没有任何理由消失】教程文章相关的互联网学习教程文章

linux – Bash,按值引用数组?【代码】

有没有办法通过引用值来访问变量?BAR=("hello", "world")function foo() {DO SOME MAGIC WITH $1// Output the value of the array $BAR }foo "BAR"解决方法:也许您正在寻找的是间接扩张.来自man bash:If the first character of parameter is an exclamation point (!), a level of variable indirection is introduced. Bash uses thevalue of the variable formed from the rest of parameter as the name of the varia...

linux – 使用lessc从.less文件生成.css的Bash脚本【代码】

我正在寻找一个bash脚本,它将以递归方式查找目录中的所有.less文件,并使用lessc在父css目录中创建一个具有相同名称的.css文件.在视觉上它看起来像这样. 之前:/css /lessa.lessb.less /whatever/css/lessc.lessd.less后:/cssa.cssb.css /lessa.lessb.less /whatever/cssc.cssd.css/lessc.lessd.less到目前为止我能够弄清楚的是我可以使用以下方法找到所有文件:find . -name *.less我可以使用以下方法生成单个文件:lessc foo.les...

linux – 用于检查变量名称是否有效的Bash命令【代码】

#check if the name is valid function myfunc() {#check "${1}"#echo "valid/invalid" }#these should return valid myfunc "my_number" myfunc "my_number1"#these should return ivalid myfunc "1my_number" myfunc "1my _number" myfunc "my number" myfunc "my_number?"等变量名只能有字母,数字(但不能在开头),…和java的所有规则一样…… 我可以使用任何功能吗?我不想重新发明轮子……解决方法:将变量名称与正则表达式匹配...

linux – 有没有办法在bash中进入随机目录?【代码】

我希望找到一种方法将工作目录更改为bash中的随机目录.我的意思是指未以任何方式指定的预先创建的目录.我已经尝试过只使用cd *,但它不识别通配符,除非我前面有一个字母,即cd a *.有谁知道一个快速,简单的方法来做到这一点?一线解决方案会很棒,但任何答案都可以.谢谢.解决方法: shopt -s nullglob dirs=(*/) [[ $dirs ]] && cd -- "${dirs[RANDOM%${#dirs[@]}]}"只要您想要一条线,就可以使用一个函数.这也允许使用当地人并具有其他...

linux – 使bash区分Ctrl-和Ctrl-Shift-

我想知道是否有任何方法可以使bash为包含shift键的组合键发送不同的代码?例如,(Ctrl V显示我)Ctrl N和Ctrl Shift N被解释为相同(^ N).或者是否有可以发挥作用的终端?或者可以打击我修改,以便它呢?解决方法:终端不直接与键盘交互;它与它接收的字节流交互,这些字节通常(但不一定)由键盘生成.对于可打印的ASCII值,值与键盘上的键(或组合)之间存在明显的对应关系. ASCII 97是a,ASCII 65是Shifta,依此类推. 但是,从ASCII 0到ASCII 31...

linux – “dash”支持`bash`样式数组吗?【代码】

在dash shell环境中,我希望将字符串拆分为数组.以下代码适用于bash但不适用于破折号.IFS="" var="this is a test|second test|the quick brown fox jumped over the lazy dog" IFS="|" test=( $var ) echo ${test[0]} echo ${test[1]} echo ${test[2]}我的问题 dash是否支持此样式的数组.如果没有,是否有任何建议将此解析为另一种类型的变量而不使用循环?解决方法:dash不支持数组.你可以尝试这样的事情:var="this is a test|seco...

Linux / Unix bash基本脚本awk / sed【代码】

我正在研究bash脚本.var=$(ls -t1 | head -n1); cat $var | sed 's/"//g' > latest.csv cat latest.csv | sed -e 's/^\|$/"/g' -e 's/,/","/g' > from_epos.csv echo "LATEST: $var";这是整个脚本,它意味着删除当前文件中的所有引号并在每个字段之间添加新引号. INPUT:"sku","item","price","qty" 5135,"ITEM1",1.79,5 5338,"ITEM2",1.39,5 5318,"ITEM3",1.09,5 5235,"ITEM4",1.09,5 9706,"ITEM5",1.99,5OUTPUT:"sku","item","pr...

linux – Bash脚本在从shell提示符执行时产生的结果与cron执行的结果不同【代码】

请考虑以下crontab(root):SHELL=/bin/bash ... ... 0 */3 * * * /var/maintenance/raid.sh和bash脚本/var/maintenance/raid.sh:#!/bin/bashecho -n "Checking /dev/md0... " if ! [ $(mdadm --detail /dev/md0 | grep -c "active sync") -eq 2 ]; thenmdadm --detail /dev/md0 | mail -s "Raid problem /dev/md0" "my@email.com";echo "ERROR" else echo "ALL OK" fi;#-------------------------------------------------------e...

linux – bash脚本中的错误替换【代码】

我正在尝试让脚本工作以将交换空间添加到VPS,作为一种解决方法,我认为我已经使用它但是现在,每次我收到错误:fakeswap.sh:5:每次尝试时都会有错误的替换如此执行:sudo sh fakeswap.sh. 以下是我的代码:#!/bin/bashSWAP="${1:-512}"NEW="$[SWAP*1024]"; TEMP="${NEW//?/ }"; OLD="${TEMP:1}0"umount /proc/meminfo 2> /dev/null sed "/^Swap\(Total\|Free\):/s,$OLD,$NEW," /proc/meminfo > /etc/fake_meminfo mount --bind /et...

linux – 避免同一个bash脚本的两个实例【代码】

运行shell脚本时,我想绝对确定它的一个实例在给定时间运行. 我应该使用文件锁机制,例如touch lockfile do_work rm lockfile够了吗?解决方法:它认为你的逻辑更像是:if [ ! -e lockfile ]; thentouch lockfiledo_workrm lockfile fi但请注意,即使这还不够.实际上,它为微妙的错误铺平了道路.由于整个事物不是原子的,所以第二个过程也可以在if子句之后但在触摸之前开始. 一个不太天真的实现你的想法会尝试锁定获取操作的原子性.这可以...

linux – 使用awk提取密钥的BASH脚本【代码】

我正在创建dkim private&公钥openssl genrsa -out dkim1024.key 1024openssl rsa -in dkim1024.key -out dkim1024.pub -pubout -outform PEM 我有一个使用awk提取密钥文件的bash脚本KEY = /usr/bin/awk’NR> 1 {a [k] = $0} END {for(i = 1; i< k; i)print a [i]}file.keyfile.key内容 -----BEGIN PUBLIC KEY----- MIGfMA0GCSqasdfadaBAQUAA4GNADCBiQKBsdfadsfsDgrKE5D2atbGtaqVmAZwzy1YNY 8pUYgF6qQ4zecRrpk3Uam52asdfafasdasdfas...

linux – Bash – 按列加入(合并)文件【代码】

有三个带列的文件,分隔符为“|”,行中的列可能为空.我需要连接第二个和第三个文件,首先使用第一个文件中的第3列和第4列,第二个和第三个中使用第1列. 例如: FILE1.TXT:123456||4|11|17|A||10|B|1 123457||4|11|17|A||12||1 123458||5|11|17|A||1|Б|1 123459||6|13|17|A||1|Б|1FILE2.TXT:4|Forth 5|Fifth 6|Sixthfile3.txt:11|st.|Eleventh 13|pr.|Thirteenth我想要的输出是什么:123456||4|Forth|11|st.|Eleventh|17|A||10|B|...

如何计算Linux bash中每个不同行的行数【代码】

我有这样一个文件:id|domain 9930|googspf.biz 9930|googspf.biz 9930|googspf.biz 9931|googspf.biz 9931|googspf.biz 9931|googspf.biz 9931|googspf.biz 9931|googspf.biz 9942|googspf.biz我想计算一个不同的ID显示在我的数据中的次数,如下所示:9930|3 9931|5 9942|1我怎么能用linux bash做到这一点?目前我正在使用这个,但我用这个计算所有行:cat filename | grep 'googspf.biz'| sort -t'|' -k1,1 | wc任何身体可以帮助吗...

linux – bash:从另一个文件填充文件【代码】

我有一个名为SOURCE的文件,我想创建一个名为TARGET的特定长度的文件,其中包含SOURCE的副本. TARGET的长度不一定是SOURCE长度的整数倍.我想在Linux上使用bash来做这件事. 我的第一次尝试是这样的:while true; do cat SOURCE; done | head -c $TARGET_LENGTH > TARGET在将指定的字节数写入TARGET后挂起.如何让它不挂? (我怀疑我错过了关于管道和信号如何工作的细节.) 编辑:我知道虽然true会永远运行,但我希望head命令在消耗指定的...

用于监视文件更改的Linux bash脚本 – >如何更改文件名【代码】

我想编辑Mike Mullin编写的这个监视脚本:https://gist.github.com/mikesmullin/6401258以获取已更改文件的名称.它似乎只检查整个文件列表的数据完整性:update_sha() { sha=`ls -lR --time-style=full-iso $path | sha1sum` }将其与旧列表进行比较:compare() {update_shaif [[ $sha != $previous_sha ]] ; thenecho -n "change detected,"buildprevious_sha=$shaelseecho -n .fi }如果我理解它是正确的,它只会检查是否有任何更改...