пытаюсь использовать скрипт bash в wsl с cd, но он ничего не делает

пытаюсь использовать скрипт bash в wsl с cd, но он ничего не делает

Я создал следующий скрипт только для изучения скрипта bash в wsl, сохраняя его как Desktop.sh в nano

#!/bin/bash 
cd /mnt/c/Users/myusername/Onedrive/Desktop

когда я нахожусь в оболочке и набираю bash Desktop.sh

Ничего не произошло

Любой совет был бы полезен.

решение1

Ваш скрипт, который вы вызвали с помощью команды, bash Desktop.shотработал отлично, но вы не видите никакого эффекта.

Почему?

Потому что скрипт запускается в подоболочке.

Выполнение скрипта с помощью bash Desktop.shзапустит подоболочку и выполнит любую команду внутри подоболочки. Таким образом, текущий каталог изменяется в подоболочке и только в подоболочке. Когда скрипт останавливается, вы возвращаетесь в свою оболочку, где ничего не изменилось. То же самое происходит, если вы сделали скрипт исполняемым, а затем запускаете его, введя его путь. В этом случае шебанг ( #!/bin/bash) считывается, чтобы определить, какую оболочку загружать.

Квидетьэффект, вместо этого вам нужно выполнить cdкоманду втекущийshell. Вы можете сделать это с помощьюпоисксценарий:

source Desktop.sh

или с помощью сокращенной записи:

. Desktop.sh

Теперь эффект будет таким же, как если бы вы сами ввели команды в командной строке скрипта.

Связанный контент