Как использовать переменную $ внутри команды с одинарной и двойной кавычкой

У меня есть сценарий 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", но без толку.

0
13.02.2017, 14:46
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"'`

, чтобы избежать одинарных кавычек, введите двойные кавычки и тем самым вставьте значение переменной.

2
28.01.2020, 02:34

Теги

Похожие вопросы