Try with aes_string()
, it should be something like this although I can't test it since you haven't provided a reproducible example.
ggplot(df.long, aes_string(x = input$show_vars3,
y = "value",
fill = input$show_vars4)) +
geom_col(position = "dodge")
If you need more specific help, please provide a proper REPRoducible EXample (reprex) illustrating your issue.