![](/img/trans.png)
[英]PHP -v Command Giving Different Results Depending on My Current Directory
[英]Why does the value of '?' change depending on my current directory?
我的計算機上有一個奇怪的文件夾,叫做template /(我相信它是在我對樹莓派進行一些底層編程時創建的)。 奇怪的是,如果我在文件夾中並運行命令
$echo -n ? | hexdump
它顯示
0000000 000d
0000001
但是,如果我在其他任何文件夾中,則命令如下所示
$echo -n ? | hexdump
0000000 003f
0000001
為什么值“?” 只能在該文件夾中更改。
我應該注意到,我發現它的原因是有一個名為“?”的文件。 在template /文件夾中,這在我編寫的某些php中引起了問題。 我試圖在其他地方重新創建它,但發現我做不到。
Why does the value of '?' change in that folder and only that folder.
?
是Shell Globing中的特殊字符。
?
匹配任何字符並echo ?
將匹配並列出當前目錄中的任何文件名,且文件名的長度必須恰好為1個字符。
PS:如果目錄沒有任何1個字符的文件名,則它將回顯文字?
表達echo ?
首先由bash處理。 它取代?
包含任何單個字符文件名(如果存在)。 如果沒有這樣的文件,它仍然存在?
。
示例(有兩個具有單個字符文件名的文件):
$ ls ?
b c
$ echo ?
b c
或(無單個字符文件)
$ ls ?
ls: cannot access ?: No such file or directory
$ echo ?
?
因此,如果您只想提出一個?
您需要轉義的字符:
$ echo \?
?
$ echo '?'
?
$ echo "?"
?
我希望這個能有一點幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.