次のようにUID
変数にid -u
結果を取得して処理を実行しようとした際に、タイトルにあるようなエラーが出て少し詰まったので記録。
#!/bin/bash
UID=`id -u`
echo "user id -> ${UID}"
原因
UID
はシステムで定義済みの環境変数だったようです。
https://www.ibm.com/docs/ja/i/7.2?topic=language-shell-variables
この他にも知らなかった定義済み変数があったので、この機会に勉強になりました。
解決策
- 定義済み変数をそのまま使う
#!/bin/bash
echo "user id -> ${UID}"
- 定義されていない変数名を使う
#!/bin/bash
USER_ID=`id -u`
echo "user id -> ${USER_ID}"