작은따옴표 및 큰따옴표 명령에서 $ 변수를 사용하는 방법

작은따옴표 및 큰따옴표 명령에서 $ 변수를 사용하는 방법

다음 내용이 포함된 bash 스크립트가 있습니다.

USERLIST="/tmp/adusers.list.names.only.txt"
cat $USERLIST | while read users
do
num=$[$num+1]
USR=`echo $users | awk '{print $1}'`
STATUS=`winexe -U DC/ID%"PASS" //10.0.0.1 'powershell.exe -command "import-module activedirectory; Get-ADUser $USR -Properties * | select Enabled"'`
echo "$USR : $STATUS"
done

그러나 이 명령은 사용자 이름을 가져오는 대신 $USR변수를 표시합니다.

winexe -U DC/ID%"PASS" //10.0.0.1 'powershell.exe -command "import-module activedirectory; Get-ADUser $USR -Properties * | select Enabled"'

큰따옴표를 시도했지만 "$VAR"작동하지 않았습니다.

답변1

호출 $USR에 나오는 부분이 작은따옴표( ) 안에 winexe있어서 변수로 변환되지 않은 것 같습니다.'

줄을 바꿔서 시도해 보세요

STATUS=`winexe -U DC/ID%"PASS" //10.0.0.1 'powershell.exe -command "import-module activedirectory; Get-ADUser $USR -Properties * | select Enabled"'`

입력하다

STATUS=`winexe -U DC/ID%"PASS" //10.0.0.1 'powershell.exe -command "import-module activedirectory; Get-ADUser '"$USR"' -Properties * | select Enabled"'`

작은따옴표를 이스케이프하려면 큰따옴표를 입력하여 변수 값을 삽입하세요.

관련 정보