我正在嘗試編寫腳本來在 Wine 中導入字體,因為我將字體放入 wine's 中c:\Windows\Fonts
,但是如果我不從 reg 檔案匯入,Wine 不會讀取它:
"Font Name"="Z:\path\to\my\wineprefix\c:\Windows\Fonts\file.ttf"
我不知道如何使用或更改/
為。有人知道如何用反斜線替換斜線嗎?\
$(pwd)
$PWD
我在 echo 和輸出檔案方面遇到問題。在我的 bash 腳本中我有這個
RUTA=""$( cd -P "$( dirname "$" )" && pwd )""
RUTAINVERSA=$(printf '%s\n' "${PWD//\//\\}")
好吧,我嘗試了以下方法:
1:
echo 'REGEDIT4
[HKEY_CURRENT_USER\\Software\\Wine\\Fonts\\External Fonts]
"Courier New"="'"Z:\\$RUTAINVERSA\\wine\\data\\dosdevices\\c:\\windows\\Fonts\\cour.ttf"'"
"Courier New Bold"="'"Z:\\$RUTAINVERSA\\wine\\data\\dosdevices\\c:\\windows\\Fonts\\courbd.ttf"'"' >> "$ARREGLOS/Fuentes.reg"
過去的結果是:c:\Windows\Fonts
,我不知道其餘的發生了什麼事\file.ttf
。
2:
echo >> "$ARREGLOS/Fuentes.reg"
echo "[HKEY_CURRENT_USER\\Software\\Wine\\Fonts\\External Fonts]" >> "$ARREGLOS/Fuentes.reg"
echo "Courier New"="c:\\windows\\Fonts\\cour.ttf" >> "$ARREGLOS/Fuentes.reg"
echo "Courier New Bold"="c:\\windows\\Fonts\\courbd.ttf" >> "$ARREGLOS/Fuentes.reg"
結果是: Courier New c:windowsFontcour.tff Courier New Bold c:widowsFontscourbd.ttf
3:
[HKEY_CURRENT_USER\\Software\\Wine\\Fonts\\External Fonts]
"Courier New"="'"c:\\\windows\\\Fonts\\\cour.ttf"'"
"Courier New Bold"="'"c:\\\windows\\\Fonts\\\courbd.ttf"'" ' >> "$ARREGLOS/Fuentes.reg"
和第一個一樣c:\windows\Fonts
,我不知道為什麼變數結果中的路徑不完整。
答案1
我不完全確定你想要做什麼,但更改斜線很容易:
$ printf '%s\n' "${PWD//\//\\}"
\home\terdon
這是使用 ksh 的字串操作功能也可用於bash
。具體來說,將替換變數中${foo//bar/baz/}
出現的所有字串。由於和是特殊字符,因此需要對它們進行轉義(和)才能使用它們。上式等價於:bar
baz
$foo
/
\
\\
\/
pwd | sed 's#/#\\#g'
答案2
您可以使用sed
透過以下命令將所有內容轉換/
為:\
sed 's/\//\\/g'
例子:
$ echo $PWD | sed 's/\//\\/g'
\home\pandya
另一種方法是使用tr
:
tr '/' '\\'
透過上面的命令,tr
將所有內容轉換/
為\
;例子:
$ echo $PWD | tr '/' '\\'
\home\pandya