커널 2.6.x 사용
sh(bash, zsh 등 아님)를 사용하여 다음 변수를 사용하여 아래 결과를 어떻게 스크립팅할 수 있습니까?
VAR1="abc def ghi"
VAR2="1 2 3"
CONFIG="$1"
for i in $VAR1; do
for j in $VAR2; do
[ "$i" -eq "$j" ] && continue
done
command $VAR1 $VAR2
done
원하는 결과:
command abc 1
command def 2
command ghi 3
답변1
한 가지 방법은 다음과 같습니다.
#! /bin/sh
VAR1="abc def ghi"
VAR2="1 2 3"
fun()
{
set $VAR2
for i in $VAR1; do
echo command "$i" "$1"
shift
done
}
fun
산출:
command abc 1
command def 2
command ghi 3
답변2
변종사토 카츠라의 답장(여기에는 독립형 기능이 있습니다):
func () {
var=$1
set -- $2
for arg1 in $var; do
printf 'command %s %s\n' "$arg1" "$1" # or cmd "$arg1" "$1" directly
shift
done
}
func "abc def ghi" "1 2 3"
다음은 작동하지만 해당 스크립트의 위치 매개변수를 재정의합니다.
var1="abc def ghi"
var2="1 2 3"
set -- $var2
for arg1 in $var1; do
printf 'command %s %s\n' "$arg1" "$1"
shift
done
답변3
아래는 해결 방법 중 하나입니다.
#!/bin/sh
var1="a b c"
var2="1 2 3"
set -- $var2
for i in $var1
do
echo $i $1
shift
done