2017-07-19 129 views
0

我想要调用C:\Program Files (x86)\Leela\Leela0100.exe并把它传递一个文件名:如何在msys2上的路径中空出一个空格?

#!/bin/bash -x 

BASE="c:/Users/supreme" 
DROPBOX="$BASE/Dropbox" 

DOWNLOADS="$BASE/Downloads" 

cd $DOWNLOADS 
SGF=`ls -th *.sgf | head -1` 

GAMES="$DROPBOX/Baduk/Games" 

mv $SGF $GAMES 

LEELA='c://Program Files (x86)//Leela//Leela0100.exe' 

cd $GAMES 
$LEELA $SGF 

然而,调用我的脚本通过bash -x toleela.sh下MSYS2产生了错误:

c:\Users\supreme\Dropbox\Programming>bash -x toleela.sh 
bash -x toleela.sh 
+ BASE=c:/Users/supreme 
+ DROPBOX=c:/Users/supreme/Dropbox 
+ DOWNLOADS=c:/Users/supreme/Downloads 
+ cd c:/Users/supreme/Downloads 
++ ls -th '9001447-269-Winggo-princepawn (1).sgf' 9429961-080-princepawn-RyanBLee.sgf 
++ head -1 
+ SGF=9429961-080-princepawn-RyanBLee.sgf 
+ GAMES=c:/Users/supreme/Dropbox/Baduk/Games 
+ mv 9429961-080-princepawn-RyanBLee.sgf c:/Users/supreme/Dropbox/Baduk/Games 
+ LEELA='c://Program Files (x86)//Leela//Leela0100.exe' 
+ cd c:/Users/supreme/Dropbox/Baduk/Games 
+ c://Program Files '(x86)//Leela//Leela0100.exe' 9429961-080-princepawn-RyanBLee.sgf 
toleela.sh: line 18: c://Program: No such file or directory 

回答

3

正如已经指出了你的IRC,您在脚本的最后一行(也在其他行上)缺少变量扩展周围的引号。

"$LEELA" "$SGF" 

可执行文件路径中的双正斜杠(//)不正确。改为使用单斜杠(/ 或双反斜杠( \\。编辑:反斜杠更复杂,所以坚持转发。

+0

[单斜杠工程](https://gist.github.com/metaperl/d8fe4887d202cd8b2c04709049b9e0de) –