Lock macOS with a password from bash
This should work on most versions 

#!/bin/bash

PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin

"/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession" -suspend

sleep 5

pmset sleepnow

osascript -e 'tell application "System Events" to sleep'

exit 0


The -suspend line will switch to the login screen (which takes a few seconds, hence the sleep 5 before the next command).

The pmset line will sleep the display.

The osascript line will sleep the computer.

Only the -suspend line is necessary to require the password, so you can choose to include the other lines, or not, as you wish.