如何在单引号和双引号命令中使用 $ 变量

如何在单引号和双引号命令中使用 $ 变量

我有一个 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"'`

为了转义单引号,请输入双引号,从而插入变量值。

相关内容