У меня проблемы с написанием программы, которая берет /path/to/file
в среде WSL Ubuntu и открывает этот файл в программе Windows по умолчанию. Самая большая проблема здесь - преобразование /path/to/file/for/WSL
в path\to\file\for\windows
. Это то, что я написал и поместил в мой .bashrc
файл:
# Function to get open-wsl to work
function open-from-wsl() {
echo "opening"
cmd_directory = echo "$1" | sed 's/^\///' | sed 's/\//\\/g' | sed 's/^...../\0C:/' | sed 's/^\mnt//'
cmd_directory = echo "$cmd_directory" | sed 's/^..//'
cmd.exe /C start $cmd_directory
}
В идеале это должно быть сделано, если я наберу:
open-from-wsl /mnt/c/Users/DavidG/Google\ Drive/folder/file.PDF
Я открою file.PDF
в программе просмотра PDF по умолчанию. На данный момент, однако, я получаю ошибку cmd_directory: command not found
, и затем открывается окно моей командной строки. Это, конечно, написано так, что я могу открыть любой файл из WSL и открыть его в программе по умолчанию, он не просто относится к PDF-файлам.
РЕДАКТИРОВАТЬ: я изменил код, как и так благодаря вводу Socowi:
# Function to get open-wsl to work
function open-from-wsl() {
echo "opening"
cmd_directory=$(echo "$1" | sed 's#\##')
cmd_directory=$(echo "$cmd_directory" | sed 's/^\///' | sed 's/\//\\/g' | sed 's/^...../\0C:/' | sed 's/^\mnt//')
cmd_directory=$(echo "$cmd_directory" | sed 's/^..//')
cmd.exe /C start $cmd_directory
}
Теперь моя проблема в том, что я не могу удалить \
из /mnt/c/Users/DavidG/Google\ Drive/folder/file.PDF
, что было моей целью, добавив строку
cmd_directory=$(echo "$1" | sed 's#\##')