2014-11-25 1 views
-2
#SETUP 
dir_to_clean="/Users/$(whoami)/Downloads" 

#Go to the directory we are going to work on 
cd $dir_to_clean; 
pwd 

Выходных ВЫШЕ/Пользователи/вошедшие в имени пользователя/ЗагрузокBASH, задние тики или Perens, и я can'y даже отладить самые основные из них ...

Однако, я хотел бы использовать Parens "(" или ")" в моих переменных, и я могу заставить его работать иногда, но не на других; Например, я устанавливаю в двойных кавычках, не уверен, что разные между одиночными и никовыми, значение dir_to_clean и вышеприведенный код будут работать, оболочка будет cd, где она должна идти, но я бы предпочел cd $ (some_variable_path).

Если кто-нибудь может дать мне сбежать вниз, я буду признателен.

спасибо.

+0

Я просто попытался это: dir_to_clean = «/ Users/мне/Downloads» # Перейти в каталог мы будем работать над cd $ (dir_to_clean); echo «Я ЕСМЬ ЗДЕСЬ: $ (pwd)» и get ./clean_downloads.sh: строка 24: dir_to_clean: команда не найдена – Scott

+2

'$ (X)' означает «запустить команду' X' и заменить ее вывод ». Он не имеет ничего общего с переменными. '$ {X}' означает «подставить значение переменной« X ». Это два совершенно разных действия, поэтому неудивительно, что они имеют различный синтаксис. В обоих случаях вы обычно должны ставить двойные кавычки вокруг Замена – rici

+0

rici: Почему бы не написать это как ответ? – amaurea

ответ

1

$(X) означает «выполнить команду X и заменить ее выход». Он не имеет ничего общего с переменными.

${X} означает «заменить значение переменной X».

Это два совершенно разных действия, поэтому неудивительно, что они имеют различный синтаксис. В обоих случаях, как правило, хотят поставить двойные кавычки вокруг подстановки:

#SETUP 
dir_to_clean="/Users/$(whoami)/Downloads" 

#Go to the directory we are going to work on 
cd "${dir_to_clean}" 
Смежные вопросы