Ubuntu bashは「$ PASSWORD」をエコーし​​ます。 sudo -S WID=$(cat /var/lib/FILE)

Ubuntu bashは「$ PASSWORD」をエコーし​​ます。 sudo -S WID=$(cat /var/lib/FILE)

/var/lib/FILE root:root 0600 (テキスト 1 行)

/var/lib/FILE を $WID で読み取る方法

 echo "$PASSWORD" | sudo -S WID=$(cat /var/lib/FILE) not working for me.

ベストアンサー1

現在、シェルの変数にファイルの内容が必要な場合、上記のアプローチは機能しません。割り当てはサブシェルで実行され、サブシェルを終了した後に失われるためです(もちろん、一部のシェルでは変数は失われません)。 。

操作するには、コマンドを実行できる項目がsudo必要です。sudoers変数の割り当てはコマンドではないため、上記の操作は再び失敗します。

ファイルの内容を変数に保存したいがファイルを読み取る権限がない場合は、以下を試してください。

WID=$(echo "a" | sudo -S cat /var/lib/FILE)

おすすめ記事