Сценарий Bash к CD к каталогу с пробелами в пути

Вы должны использовать DISTINCT Query, но для того, чтобы удалить повторяющиеся результаты, вы должны удалить «selected_at» в select, поскольку каждый вошедший в систему создается в разное время.

84
задан Benjamin W. 21 September 2018 в 15:50
поделиться

7 ответов

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

cd ~/"My Code"
cd ~/'My Code'

тильда не заключается в кавычки здесь, таким образом, расширение тильды будет все еще выполнено.

cd "$HOME/My Code"

можно развернуть переменные среды в дважды заключенных в кавычки строках; это в основном, что расширение тильды делает

cd ~/My\ Code

, можно также выйти из специальных символов (таких как пространство) с обратной косой чертой.

77
ответ дан derobert 24 November 2019 в 08:35
поделиться
cd ~/My\ Code

, кажется, работает на меня... Если отбрасывание кавычек, но хранение наклонной черты не работает, можно ли отправить некоторый пример кода?

10
ответ дан Andrew Flanagan 24 November 2019 в 08:35
поделиться

Можно использовать любой из:

cd ~/"My Code"
cd ~/M"y Code"
cd ~/My" Code"

Вы не можете использовать:

cd ~"/My Code"

первые работы, потому что оболочка разворачивает ~ / в $HOME / и затем лавирует на Моем Коде без двойных кавычек. Вторые сбои, потому что нет пользователя, позвонившего' "' (двойная кавычка) для ~" для отображения на.

9
ответ дан Jonathan Leffler 24 November 2019 в 08:35
поделиться

Единственная обратная косая черта работает на меня:

ry4an@ry4an-mini:~$ mkdir "My Code"

ry4an@ry4an-mini:~$ vi todir.sh

ry4an@ry4an-mini:~$ . todir.sh 

ry4an@ry4an-mini:My Code$ cat ../todir.sh 
#!/bin/sh
cd ~/My\ Code

Вы уверенный, что проблема не состоит в том, что Ваш сценарий оболочки изменяет каталог в своей подоболочке, но тогда Вы вернулись в основной оболочке (и исходный dir) при выполнении? Я избежал этого при помощи. выполнять сценарий в текущей оболочке, хотя большинство людей просто использовало бы псевдоним для этого. Пробелы могли быть отвлекающим маневром.

4
ответ дан Ry4an Brase 24 November 2019 в 08:35
поделиться

При работе в соответствии с Linux синтаксис ниже является правильным:

cd ~/My\ Code

Однако при выполнении файла используйте синтаксис ниже:

$ . cdcode

(просто'.' и не '. / ')

2
ответ дан Alterlife 24 November 2019 в 08:35
поделиться

У меня была похожая проблема, когда я использовал bash-скрипт для сброса некоторых данных. В итоге я создал символьную ссылку в папке script без пробелов в ней. Затем я направил свой скрипт на символическую ссылку, и это отлично работает.

Чтобы создать ссылку. ln -s [ЦЕЛЕВОЙ КАТАЛОГ ИЛИ ФАЙЛ] ./[SHORTCUT]

Mau или может быть не полезен.

1
ответ дан 24 November 2019 в 08:35
поделиться

Я нашел решение ниже на этой странице :

x="test\ me"  
eval cd $x

Комбинация \ в текстовой константе с двойными кавычками и eval перед ] cd заставляет его работать как шарм!

36
ответ дан 24 November 2019 в 08:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: