Bash не может активировать обратные вызовы в интерактивном режиме

В RHEL5.2 (bash 2.3.25) я могу cd `pwd` / [TAB], а pwd заменяется на мой текущий рабочий каталог, используя вывод pwd (1).

How могу ли я получить ту же функциональность в Ubuntu 9.10 (bash 4.0.33).

Я прочитал предыдущие вопросы, которые ссылаются на обратные ссылки как на старую и депрессированную. Я этого не знал. Я понимаю, что вложенность их может быть сложной, и я использую скрипты $ {}, но я хотел бы иметь возможность оценивать команды интерактивно в оболочке.

5
задан 19 May 2011 в 17:17

24 ответа

Это функция, которая не является ошибкой.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрите предложение использовать ./ в качестве пути для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый синтаксис $() обычно предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда следует использовать экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 25 July 2018 в 21:53

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

ln -s ./file /target/file

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

ln -s $PWD/file /target/file

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 25 July 2018 в 21:53

Попробуйте

cd ./TAB

.

cd $VAR/... cd $(cmd)/...

тоже не работают для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 25 July 2018 в 21:53
  • 1
    ./ - хорошее предложение, то есть правильный способ ссылки на настоящий рабочий каталог. Не ожидайте расширения $ var или $ (cmd) на вкладке, что фактически вызовет все другие проблемы. – Caleb 20 May 2011 в 10:43

Это функция, которая не является ошибкой.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрите предложение использовать ./ в качестве пути для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый синтаксис $() обычно предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда следует использовать экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 26 July 2018 в 17:31

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

ln -s ./file /target/file

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

ln -s $PWD/file /target/file

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 26 July 2018 в 17:31

Попробуйте

cd ./TAB

.

cd $VAR/... cd $(cmd)/...

тоже не работают для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 26 July 2018 в 17:31
  • 1
    ./ - хорошее предложение, то есть правильный способ ссылки на настоящий рабочий каталог. Не ожидайте расширения $ var или $ (cmd) на вкладке, что фактически вызовет все другие проблемы. – Caleb 20 May 2011 в 10:43

Это функция, которая не является ошибкой.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрите предложение использовать ./ в качестве пути для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый синтаксис $() обычно предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда следует использовать экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 2 August 2018 в 03:28

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

ln -s ./file /target/file

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

ln -s $PWD/file /target/file

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 2 August 2018 в 03:28

Попробуйте

cd ./TAB

.

cd $VAR/... cd $(cmd)/...

тоже не работают для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 2 August 2018 в 03:28
  • 1
    ./ - хорошее предложение, то есть правильный способ ссылки на настоящий рабочий каталог. Не ожидайте расширения $ var или $ (cmd) на вкладке, что фактически вызовет все другие проблемы. – Caleb 20 May 2011 в 10:43

Это функция, которая не является ошибкой.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрите предложение использовать ./ в качестве пути для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый синтаксис $() обычно предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда следует использовать экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 4 August 2018 в 19:26

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

ln -s ./file /target/file

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

ln -s $PWD/file /target/file

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 4 August 2018 в 19:26

Попробуйте

cd ./TAB

.

cd $VAR/... cd $(cmd)/...

тоже не работают для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 4 August 2018 в 19:26
  • 1
    ./ - хорошее предложение, то есть правильный способ ссылки на настоящий рабочий каталог. Не ожидайте расширения $ var или $ (cmd) на вкладке, что фактически вызовет все другие проблемы. – Caleb 20 May 2011 в 10:43

Попробуйте

cd ./TAB

.

  cd $ VAR / ... cd $ (cmd) / ...  

тоже не работает для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 6 August 2018 в 03:36

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

  ln -s ./file / target / file  

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

  ln -s $ PWD / file / target / file  

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 6 August 2018 в 03:36

Это особенность, а не ошибка.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрим предложение использовать ./ как путь для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый $ () , как правило, предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда должны использоваться экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 6 August 2018 в 03:36

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

  ln -s ./file / target / file  

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

  ln -s $ PWD / file / target / file  

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 7 August 2018 в 21:26

Попробуйте

cd ./TAB

.

  cd $ VAR / ... cd $ (cmd) / ...  

тоже не работает для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 7 August 2018 в 21:26

Это особенность, а не ошибка.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрим предложение использовать ./ как путь для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый $ () , как правило, предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда должны использоваться экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 7 August 2018 в 21:26

Попробуйте

cd ./TAB

.

  cd $ VAR / ... cd $ (cmd) / ...  

тоже не работает для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 10 August 2018 в 09:44

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

  ln -s ./file / target / file  

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

  ln -s $ PWD / file / target / file  

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 10 August 2018 в 09:44

Это особенность, а не ошибка.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрим предложение использовать ./ как путь для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый $ () , как правило, предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда должны использоваться экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 10 August 2018 в 09:44

Попробуйте

cd ./TAB

.

  cd $ VAR / ... cd $ (cmd) / ...  

тоже не работает для меня. Возможно, вы можете сравнить файлы / etc / bash_completion.

3
ответ дан 13 August 2018 в 15:56
  • 1
    ./ - хорошее предложение, то есть правильный способ ссылки на настоящий рабочий каталог. Не ожидайте расширения $ var или $ (cmd) на вкладке, что фактически вызовет все другие проблемы. – Caleb 20 May 2011 в 10:43

Есть ситуации, когда требуется «$ PWD /» вместо «./», поэтому не следует предлагать всегда использовать «./» вместо «$ PWD /». Например, когда вы делаете символическую ссылку.

Предположим, что вы находитесь в / некоторой папке. Теперь вы запускаете следующую команду:

  ln -s ./file / target / file  

Это становится неработающей ссылкой. Что вам действительно нужно сделать:

  ln -s $ PWD / file / target / file  

Очень сложно ввести весь путь. Эта проблема не зависит от проблем с «устареванием», поскольку symlink просто не работает таким образом. Таким образом, я предлагаю вам указать ошибку, чтобы исправить эту проблему.

1
ответ дан 13 August 2018 в 15:56

Это особенность, а не ошибка.

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

Чтобы сделать расширение, bash требуется только строка это путь, а не какая-то программа, которую нужно выполнить, чтобы получить строку. Рассмотрим предложение использовать ./ как путь для настоящего рабочего каталога, а также рекомендуется!

Backticks не устарели или не устарели, хотя новый $ () , как правило, предпочтительнее в эти дни. Однако в вашем примере использование команды вообще не рекомендуется. Backticks и команда должны использоваться экономно и только тогда, когда другой синтаксис невозможен.

4
ответ дан 13 August 2018 в 15:56

Другие вопросы по тегам:

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