スクリプトのユーザー名を変数に置き換える方法


9

自宅のPCにインストールスクリプトを作成し、より柔軟にしたいと考えています。

ユーザー名を現在のユーザー変数に置き換える方法は?

例:/ home / THISUSER / Downloads /にダウンロードします。


2
変数$HOMEを家と$USERユーザーに使用できます:)
dadexix86

2
@ dadexix86回答を投稿することもできます。この質問はコメントで時間を無駄にあまりにも安いです
Sergiy Kolodyazhnyy

@Sergはい、しかしそれが複製であることはほぼ確実であり、私はオリジナルのものを探しています:)
dadexix86

Downloadsフォルダーは英語のシステムにのみ存在することに注意してください。ユーザーが別のローカリゼーションを選択した場合、名前を変更できます。
バイトコマンダー

ダウンロードは一例でした。インストール後にファイルは削除されます。しかし、
役立つ

回答:


21

この変数$HOMEは、家と$USERユーザーに使用できます。

次に、例は$HOME/Downloadsまたはになり/home/$USER/Downloadsます。


10
すべてのシステムがホームディレクトリに/ homeを使用するわけではないため、ホームディレクトリを参照する場合は、$ HOMEを使用することをお勧めします。
asmeurer 2016年

3
@asmeurerは、Ubuntuおよび公式の派生物のみを扱います。/ homeを使用しないデフォルトのバージョンは何ですか?
Rinzwind 2016年

4
このサイトがUbuntuについてのみであるからといって、移植可能なコードの記述やベストプラクティスの使用を避けるべきではありません。
asmeurer 2016年

15

あなたがこれをしたいなら、あなたは使うべきです...

more ~/.config/user-dirs.dirs
# This file is written by xdg-user-dirs-update
# If you want to change or add directories, just edit the line you're
# interested in. All local changes will be retained on the next run
# Format is XDG_xxx_DIR="$HOME/yyy", where yyy is a shell-escaped
# homedir-relative path, or XDG_xxx_DIR="/yyy", where /yyy is an
# absolute path. No other format is supported.
# 
XDG_DESKTOP_DIR="/discworld/Desktop"
XDG_DOWNLOAD_DIR="/discworld/Downloads"
XDG_TEMPLATES_DIR="/discworld/Templates"
XDG_PUBLICSHARE_DIR="/discworld/Public"
XDG_DOCUMENTS_DIR="/discworld/Documents"
XDG_MUSIC_DIR="/discworld/Music"
XDG_PICTURES_DIR="/discworld/Pictures"
XDG_VIDEOS_DIR="/discworld/Videos"

それで

echo $(xdg-user-dir DOWNLOAD)

デフォルトのダウンロード場所が表示されます(私の場合/discworld/Downloads)。これらのすべての単語で機能します。お気に入り ...

echo $(xdg-user-dir DESKTOP)

これが本当の普遍的な方法であり、常に機能します:)
Jacob Vlijm

ただ、xdg-user-dir DOWNLOADあなたはそれを印刷したい場合。:P
kos 2016年

moreときに何をします!isatty(stdin)か?

@JacobVlijm xdg-user-dirsがインストールされていないシステムがあります。おそらくUbuntuではそれほどではありませんが、$ HOMEと$ USERを使用するよりも普遍的ではありません。
jazzpi 2016年

@jazzpi私たちはAsk Ubuntuにいるので、質問の範囲内の上記のユーザーのディレクトリはユニバーサルですが、 `$ HOME / Downloads`はそうではありません。
Jacob Vlijm 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.