indirection

고쳐 쓰다
indirection

고쳐 쓰다

이 질문에는 이미 답변이 있습니다.: ...

Admin

문자열 교체와 함께 bash 간접 참조를 사용할 필요가 없는 이유는 무엇입니까?
indirection

문자열 교체와 함께 bash 간접 참조를 사용할 필요가 없는 이유는 무엇입니까?

Bash 스크립팅에서 내가 겪은 어려운 일 중 하나는 변수 확장을 재귀적으로 사용하는 것입니다. 그러나 저는 [ChatGPT를 통해] 위치 매개변수 값을 참조하기 위해 간접 대체를 사용할 수 있다는 사실을 발견했습니다. linkerArgs+=("${!i}") 그러나 문자열 대체를 사용하면 논리적으로 확장을 재귀적으로 사용할 수 있습니다. "${x// /$newChar}" bash 인터프리터가 배열에 항목을 할당하는 맥락에서 사용될 때 후자 유형의 확장(괄호 안의 달러 기호만)을 "잘못된 대체"로 ...

Admin

변수를 호출하는 데 따옴표로 묶인 명령 대체를 사용할 수 없습니다.
indirection

변수를 호출하는 데 따옴표로 묶인 명령 대체를 사용할 수 없습니다.

설명하다: variable="Something that it holds" 그런 다음 echo "$variable"출력됩니다: 그것이 담고 있는 내용 하지만 나도 그렇다고 가정해 보세요. var2="variable"; echo "\$$(echo $var2)" $variable 대신에: 무엇을 담고 있는지 만 출력합니다. 여기에서 Unix의 어떤 기능이 작동하는지 말해 줄 수 있는 사람이 있나요? ...

Admin

Bash 배열의 간접 액세스
indirection

Bash 배열의 간접 액세스

다음과 같은 간접적인 작업을 수행하려고 합니다. host_1=(192.168.0.100 user1 pass1) host_2=(192.168.0.101 user2 pass2) hostlist=( "host_1" "host_2" ) for item in ${hostlist[@]}; do current_host_ip=${!item[0]} current_host_user=${!item[1]} current_host_pass=${!item[2]} echo "IP: $current_host_ip User...

Admin

zsh는 간접 확장을 통해 연관 배열의 키가 존재하는지 테스트합니다.
indirection

zsh는 간접 확장을 통해 연관 배열의 키가 존재하는지 테스트합니다.

따라서 다음과 같이 간접 확장을 통해 일반 매개변수의 존재 여부를 테스트할 수 있다는 것을 알고 있습니다. foo=1 bar=foo (( ${(P)+bar} )) && print "$bar exists" 다음을 수행하여 연관 배열에 키가 존재하는지 테스트할 수 있다는 것을 알고 있습니다. foo=([abc]=1) (( ${+foo[abc]} )) && print "abc exists" 그러나 두 가지를 결합하고 간접 확장을 통해 키가 연관 배열에 존재하는지 테스...

Admin

Bash에는 몇 가지 수준의 간접 참조를 적용할 수 있나요?
indirection

Bash에는 몇 가지 수준의 간접 참조를 적용할 수 있나요?

Bash에서는 두 가지 방법으로 가변 간접 확장을 수행할 수 있다는 것을 알고 있습니다. 사용 declare:declare -n foo=bar 확장 기능을 사용하세요 ${!..}. 우리는 두 가지를 결합할 수 있습니다: declare -n foo=SHELL bar=foo echo ${!bar} 다음을 제공합니다: /bin/bash 더 많은 수준으로 확장할 수 있나요? 대부분은 난독화된 코드를 작성하는 것에 관한 것입니다. 내 친구들 중 몇몇은 이를 하려고 서로 도전하고 있습니다...

Admin

Bash 변수 간접 참조를 사용할 때 더 많은 배열 멤버에 액세스하는 방법은 무엇입니까?
indirection

Bash 변수 간접 참조를 사용할 때 더 많은 배열 멤버에 액세스하는 방법은 무엇입니까?

인덱스와 잘 작동하는 것처럼 보이는 다음 예를 살펴보세요 0. $ a1=(1 2 3) $ a2=(a b c) $ for x in a1 a2; do echo "${!x}"; done 1 a $ for x in a1 a2; do echo "${!x[0]}"; done 1 a 그러나 인덱싱을 사용하면 1아무것도 인쇄되지 않습니다. $ for x in a1 a2; do echo "${!x[1]}"; done 배열은 그 자체로 괜찮습니다. $ echo "${a1[1]} ${a2[1]}" 2...

Admin