Multiple command output into variable Bash script with $()

后端 未结 2 1994
鱼传尺愫
鱼传尺愫 2021-01-24 20:25

I reviewed the multiple threads on this and am still having issues, here is the command I\'m trying to execute. Commands without the $() print the desired output t

相关标签:
2条回答
  • 2021-01-24 20:54

    Spaces Not Legal in Variable Assignments

    Variable assignments must not have spaces between the variable name, the assignment operator, and the value. Your current line says:

    MODEL3= $(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')
    

    This actually means "run the following expression with an empty environment variable, where MODEL3 is set but empty."

    What you want is an actual assignment:

    MODEL3=$(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')
    
    0 讨论(0)
  • 2021-01-24 20:56

    That is correct:

    MODEL3=$(/usr/sbin/getSystemId | grep "Product Name" | awk '{print $4}')
    

    But you can write the same without grep:

    MODEL3=$(/usr/sbin/getSystemId | awk '/Product Name/{print $4}')
    

    Now you have the result in the MODEL3 variable and you can use it further as $MODEL3:

    echo "$MODEL3"
    
    0 讨论(0)
提交回复
热议问题