Bash
驗證主目錄的腳本
我想編寫一個簡單的 Bash 腳本,當使用實際使用者名作為參數時顯示使用者主目錄的路徑,並在使用此系統上不存在的使用者名時顯示使用者未找到或其他內容作為論據。
這需要一個函式嗎?這可以通過在腳本文件中使用基本的 GNU 兼容命令來完成嗎?
read -p "Enter a username: " username if getent passwd "$username" > /dev/null then printf "Their home directory is: %s\n" "$(getent passwd "$username" | cut -d: -f6)" else printf "User not found!\n" >&2 fi
#!/bin/sh username=$1 if ! getent passwd "$username" >/dev/null 2>&1; then printf 'User %s does not exist\n' "$username" exit 1 fi homedir=$( getent passwd "$username" | cut -d: -f6 ) if [ -n "$homedir" ]; then if [ -d "$homedir" ]; then printf 'User %s has a valid (existing) home directory: %s\n' "$username" "$homedir" else printf 'User %s lacks a valid (existing) home directory: %s\n' "$username" "$homedir" fi else printf 'User %s has no home directory\n' "$username" fi
該腳本從命令行獲取使用者名:
$ ./script.sh kk User kk has a valid (existing) home directory: /home/kk $ ./script.sh nobody User nobody lacks a valid (existing) home directory: /nonexistent $ ./script.sh aoae User aoae does not exist