Скрипт Bash получить пользователя и изменить каталог - PullRequest
0 голосов
/ 31 декабря 2011

Как я могу объединить эти два примера с pushd и whoami, чтобы изменить каталог?

Я знаю, что могу изменить каталог следующим образом:

#!/bin/bash
pushd /home/mike/Pictures > /dev/null
# do something in the new dir
ls
popd > /dev/null

И я знаю, что могу получить имя пользователя вот так:

#!/bin/bash
theuser=`whoami`
echo $theuser        

Ответы [ 6 ]

3 голосов
/ 31 декабря 2011

Ты Вааау переосмысливаешь это ...

cd ~/Pictures

РЕДАКТИРОВАТЬ:

На самом деле, нет.То, что вы действительно хотите, это:

cd "$(xdg-user-dir PICTURES)"
1 голос
/ 31 декабря 2011

Проще просто использовать cd для смены каталога:

#!/bin/bash    
cd ~/Pictures
0 голосов
/ 31 декабря 2011

Среди других решений:

pushd "$HOME/Pictures"

В конце концов, ничто не обязывает домашний каталог иметь имя пользователя!

0 голосов
/ 31 декабря 2011

Bash уже имеет переменную $ USER, нет необходимости вызывать внешний двоичный файл

pushd /home/$USER/Pictures > /dev/null
0 голосов
/ 31 декабря 2011

Намного проще, чем использовать pushd и popd, запустить команду в под-оболочке:

(
cd /home/$(whoami)/Pictures &&
ls
)

Под-оболочка меняет каталог, не затрагивая основной процесс - именно так, как вы хотели, но более надежно.

0 голосов
/ 31 декабря 2011

Эти обратные пометки можно использовать для интерполяции вывода команды, которую они содержат, в другую:

pushd /home/`whoami`/Pictures
...