변수가 있습니다 : pkgname=com.google.android.youtube
명령은
su -c "stockapp=$(pm 경로$pkgname | grep base | sed 'sed 's/package://g')"
변수가 큰따옴표 안에 전달되지만 $()에는 전달되지 않는 것을 확인했습니다. 거기에 변수를 어떻게 전달할 수 있습니까?
답변1
귀하의 코드가 이해되지 않습니다.
아마도 당신은 다음을 의미할 것입니다:
stockapp=$(
PKG=$pkgname su -c 'pm path "$PKG"' |
sed '/base/!d; s/package://g'
)
즉, as 및 인수를 사용하여 로그인 셸을 실행하고(가상 root
로그인 셸은 Bourne과 유사함) 해당 환경에서 실행하고 출력을 처리하여 를 포함하지 않는 모든 줄을 제거하고 다른 줄의 경우 제거합니다. 의 모든 발생을 확인하고 해당 출력을 쉘 스크립트의 변수에 할당합니다.root
-c
pm path "$PKG"
root
PKG=contents-of-pkgname
base
package:
$stockapp