我在Windows中使用了cygwin。以下命令應在字符串「./bootstrp3.cab」中輸出「/」的出現次數。它的工作原理,當我使用mintty.exe外殼和輸出「1」:tr命令會導致cygwin bash.exe外殼出現問題,但可以在mintty.exe中運行
echo ./bootstrp3.cab | tr -cd/| wc -c
不幸的是,與bash.exe外殼
Usage:
tr [-cs] string1 string2
tr -s[-c] string1
tr -d[-c] string1
tr -ds[-c] string1 string2
看來,這兩個殼的行爲不同輸出以下消息,但它們似乎都是同一種外殼,因爲當我echo $0
時,bash.exe輸出bash
和mintty.exe輸出-bash
。
我也用bourne shell(sh.exe)試過了這個命令,但是它輸出的信息和bash.exe一樣。
有誰知道我可以如何獲得使用sh.exe或bash.exe shell的命令?還有人知道爲什麼這兩個bash shell的行爲有所不同嗎?
通常情況下,我會說這是不是一個bash的問題,因爲'tr'是一個獨立的程序。但是,我不知道各種Windows/cygwin shell是如何實現的;各種Unix實用程序可能是「內置的」。一個建議是看看'tr -c -d'(分別指定每個選項)是否都適用。 – chepner 2012-07-25 15:15:58
不幸的是,它通過分開選項不起作用。它輸出相同的消息。但是謝謝你的幫助。我可以通過使用perreals建議來解決這個問題。 – Marc 2012-07-26 07:17:08
MinTTY是一個終端,而不是一個shell;你在終端中使用一個shell,並且同時需要兩個。你怎麼開始每一個? – 2012-07-26 17:51:10