shell 的雙變數迴圈
想問個問題, shell 可以用for i in a b c d e
do
xxxx
done
來取每個變數
但如果我想做的是取每個 for 的變數時再帶入另一個變數為條件做同一件事,
比如 a 時 grep aa, b 時 grep bb, c 時 grep cc
shell 有沒有類似 python 的 (a,x) 元組功能或可以怎麼做?
本帖最后由 walkman660 于 2019-3-14 18:06 编辑
ghost 发表于 2019-3-14 16:53
第一個要一堆 if,寫起來太長,跑起來也會多花一點時間.
第二個應該可以,我可以考慮試試.
CUT肯定比AWK快,先不说AWK调用多少东西,单看二进制文件CUT就小得多
错了,应该时这种
# string="hello,shell,haha"
# echo ${string#*,}
shell,haha
# echo ${string##*,}
haha
# echo ${string%,*}
hello,shell
# echo ${string%%,*}
hello
这个效率比CUT高,但在SHELL能处理的量级里,我认为CUT够了 不太理解繁体名字,不知道猜的对不对
有二维数组,一般懒得用
可以这样
for i in a,aa b,bb c,cc;do
var1=`echo $i|cut -d ',' -f 1`
var2=`echo $i|cut -d ',' -f 2`
grep $var2
done
原理明白了就可以扩展了 本帖最后由 ApkB 于 2019-3-14 15:55 编辑
#!/bin/bash
for i in f1 f2 f3 ;
do
echo $i is appoint ;
done
在里面加个if不行? 本帖最后由 ghost 于 2019-3-14 16:58 编辑
第一個要一堆 if,寫起來太長,跑起來也會多花一點時間.
第二個應該可以,我可以考慮試試.
我是想做
當 i = HL 時 grep Heilongjiang
當 i = FJ 時 grep Fujian
目前找到的做法是在 for 前先定義 var = " Heilongjiang" ....
在 for 裡再把 var 帶進
(但我還沒寫完,正在試,不知道非數字的變數可不可以這樣用.)
想看看有沒比我這跑起來更快的方法,雖然這種小 script 怎麼跑也花不了太多時間就是...
页:
[1]