【linux – GNU parallel – 作为参数的数组中的两个参数】教程文章相关的互联网学习教程文章

linux – 你可以将一个数组传递给一个函数,但只使该函数的一个参数接收整个数组吗?【代码】

如果我将数组传递给函数:func() {echo $1echo $2echo $3 }myArray=("This" "Is" "An Array") func "${myArray[@]}"然后,数组的每个元素都将传递给函数的单独参数. 有没有办法只让函数的一个参数接收整个数组?解决方法:你可以,有点. Bash和ksh93有名称引用,它们有点像指针,允许你将数组名称传递给函数,并从那里使用它,比如说:#!/bin/bash function byname {typeset -n _p=$1echo "second item of '$1' is ${_p[1]}"echo "sec...

linux – 如何在ksh中过滤字符串数组【代码】

我想从“aa”数组中删除“bb”数组中定义的IP,因此IP的255.0.0.0和255.255.255.0将从数组中的列表中删除. 当我运行我的ksh代码然后打印数组aa时,我看到IP-255.255.255.0没有被删除? 我的语法有什么问题?echo ${aa[*]}45.32.3.5 255.0.0.0 255.255.255.0 19.23.2.12echo ${bb[*]}255.0.0.0 255.255.255.0ksh程序:for run in ${bb[*]}dofor ((i=0; i<${#aa[@]}; i++)); do[[ ${aa[i]} == $run ]] && unset aa[i]donedone测试:ec...

linux – GNU parallel – 作为参数的数组中的两个参数【代码】

我有一个使用gnu parallel的脚本.我想为每个“迭代”传递两个参数 在串行运行中我有类似的东西:for (( i=0; i<=10; i++ )) doa = tmp1[$i]b = tmp2[$i] done而且我想把它作为平行func pf() {a=$1b=$2 } export -f pf parallel --jobs 5 --linebuffer pf ::: <what to write here?>解决方法:省略你的其他平行标志只是为了保持专注……parallel --link pf ::: A B ::: C D这将首先运行您的函数,其中a = A,b = C,然后是a = B,b = D或...

linux – Bash eval数组变量名【代码】

这是我的bash案例: 第一种情况,这就是我想用myvarA做的“别名”var:myvarA="variableA" varname="A" eval varAlias=\$"myvar"$varname echo $varAlias数组变量的第二种情况并循环其成员,这是微不足道的:myvarA=( "variableA1" "variableA2" ) for varItem in ${myvarA[@]} doecho $varItem done现在不知怎的,我需要像示例1那样使用“别名”技术,但这次是对于数组变量:eval varAlias=\$"myvar"$varname for varItem in ${varAli...

linux – 如何在bash中移动数组值【代码】

我们想要构建6个挂载点文件夹作为示例/data/sdb /data/sdc /data/sdd /data/sde /data/sdf /data/sdg所以我们使用数组编写了这个简单的bash脚本folder_mount_point_list="sdb sdc sdd sde sdf sdg"folderArray=( $folder_mount_point_list )counter=0 for i in disk1 disk2 disk3 disk4 disk4 disk5 disk6 do folder_name=${folderArray[counter]} mkdir /data/$folder_name let counter=$counter+1 done现在我们想要在没有计数器的...

linux – 如何将前几个命令行参数存储到数组中【代码】

我有一个shell脚本,它从命令行获取输入参数.以下只有两个选项:./test.sh 20180415 20180416 20180417 20180418 2 ./test.sh 20180418 2第一个选项需要5个输入参数,其中前四个是日期格式“YYYYMMDD”,我想将这些日期存储在数组变量中:sets_date =(“$@”),最后一个参数是2我将存储它在不同的变量. 第二个选项需要2个输入参数,其中第一个参数采用相同的日期格式,我仍然希望将该日期存储在数组变量中,将最后一个参数存储在不同的变量...

linux – 将变量用作bash关联数组中的键【代码】

我正在尝试将Linux中的英语词典读成关联数组,使用单词作为键和预定义字符串作为值.这样我就可以按键查找单词以查看它们是否存在.另外,我需要所有的单词都是小写的.这很简单,但bash语法正在阻碍我.当我运行下面的代码时,我得到一个’错误的数组下标’错误.有什么想法可能是什么?function createArrayFromEnglishDictionary(){IFS=$'\n'while read -d $'\n' line; do#Read string into variable and put into lowercase.index=`echo...

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 – “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:列出所有目录,推入bash数组【代码】

这是我想要的最终结果: 我有超过15个用户的克隆应用程序的实例,有时我需要更新文件(它们几乎保持不变 – 一切都是动态的.这是更新/新功能).我写了一个非常简单的bash脚本,我必须手动将每个用户从/ home /放入数组中.但我需要这个扩展. 如何获取目录列表(类似于LS命令)仅将DIRECTORY名称提供给bash数组.可能我会在bash文件中想要这个命令,因为我希望它抓住/ home /目录中的所有用户,推入阵列(例如:webUsers(adam john jack) 这是我...

linux – bash打印和递增数组值【代码】

我正在制作一个bash脚本,在这个脚本中我需要打印一个数字,而它的增量如下:0000 0001 0002 0003 0004我做了这个,但没有工作:#!/bin/bash i=0 pass[0]=0 pass[1]=0 pass[2]=0 pass[3]=0 for i in $(seq 1 9)pass[3]="$i"echo ${pass[*]} done我将脚本粘贴在cli上,我得到了这个.$~ #!/bin/bash $~ i=0 $~ pass[0]=0 $~ pass[1]=0 $~ pass[2]=0 $~ pass[3]=0 $~ for i in $(seq 1 9) > pass[3]="$i" bash: error sintáctico cerc...

linux – 概率排除零后,数组中每个唯一数字(长度未知)的分布【代码】

我的部分数据文件看起来像ifile.txt 1 1 3 0 6 3 0 3 3 5我想找出除零之外的每个数字的概率.例如P(1)= 2/8; P(3)= 4/8,依此类推 欲望输出ofile.txt 1 0.250 3 0.500 5 0.125 6 0.125第1列显示除0和第2列之外的唯一数字显示概率.我正在尝试如下,但看起来非常冗长的想法.我在for循环中遇到问题,因为有很多唯一的数字n=$(awk '$1 > 0 {print $0}' ifile.txt | wc -l) for i in 1 3 5 6 ..... do n1=$(awk '$1 == $i {print $0}' i...

linux – 同时读取bash数组(不进入)【代码】

我试图在读取时使用数组,但整个数组立即输出.#!/bin/bashdeclare -a arr=('1:one' '2:two' '3:three');while read -e it ; doecho $it done <<< ${arr[@]}它应该单独输出每个值(但不是),所以也许在读取时不是热门票?解决方法:对于这种情况,使用for循环更容易:$declare -a arr=('1:one' '2:two' '3:three') $for it in "${arr[@]}"; do echo $it; done 1:one 2:two 3:threewhile读取方法非常有用(a)当您想要从文件中读取数据时,以...

linux – bash:一次获取多个数组元素的简单方法?【代码】

是否有* nix命令格式化输入(由换行符分隔),以便每行只显示特定的最大元素数?例如:$yes x | head -10 | command 4 x x x x x x x x x x我写了一个执行此任务的快速bash脚本(如下所示),但它似乎很长并且可能效率低下.有一个更好的方法吗?#!/bin/shif [ -z "$1" -o -z "$2" ]; thenecho Usage `basename $0` {rows} {columns}exit 1 fiROWS=$1 COLS=$2input=$(yes x | head -${ROWS}) lines=() i=0 j=0 eol=0for x in ${input[*]} ...

linux – 如何检查awk数组是否为空【代码】

我是AWK的新手,并试图确定我的阵列是否为空,所以如果是这样我可以打印一条消息.通常我习惯于长度函数,可以像这样检查,但似乎AWK没有.这是我的工作代码,如果解析完所有数据后数组中没有任何内容,我只想打印出不同的消息.#add to array if condition is met if ($2 == "SOURCE" && $4 == "RESTRICTED"){sourceAndRestricted[$3]++; } #print out array for (var in sourceAndRestricted){printf "\t\t"var"\n" }香港专业教育学院尝试...