在Linux下如何使用command取得一串path的dirname跟filename
其實很簡單, 有兩個command, dirname, basename
ex: pathname = /abc/def/test.c
$ dirname $pathname
$ /abc/def
$ basename $pathname
$ test.c
2017年6月27日 星期二
2017年6月24日 星期六
[Game] 鐵血聯盟2 GOG版本在Macbook上執行的方式
之前被介紹文推坑,等到前陣子終於GOG特價,
我租屋處只有MacBook Pro,不過我看他有支援Mac OS就放心入手了。
不過興高采烈的下載下來安裝之後發現無法進入遊戲,
一執行後都是看到藍畫面後閃退,
看一下GOG上最後更新大概是四年前了,
之間Mac OS有些更新後可能無法相容,
四處搜尋之後總算解決,解法如下
1. 下載最新的Wineskin Winery
http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads
下載之後執行,按畫面上的 "+" 新增新的Engine
我是下載最新的版本 (WS9Wine2.6)
載好之後就可以先關掉
2. 更新GOG版鐵血聯盟2的Winery engine
GOG版本的鐵血聯盟2預設就是包著Winery來執行
不過版本比較舊,不相容於現在的Mac OS
開啟Finder -> 左邊喜好項目點選應用程式 -> 找到鐵血聯盟2的目錄 ->
右鍵(或是雙指點擊觸控板) 點選顯示套件內容 -> Contents -> Resources -> Game ->
右鍵點選Jagges Alliance 2 -> 顯示套件內容 -> 執行Wineskin
然後在Advanced -> Tools -> Update wrapper
選擇你下載的最新的wrapper就ok了
我租屋處只有MacBook Pro,不過我看他有支援Mac OS就放心入手了。
不過興高采烈的下載下來安裝之後發現無法進入遊戲,
一執行後都是看到藍畫面後閃退,
看一下GOG上最後更新大概是四年前了,
之間Mac OS有些更新後可能無法相容,
四處搜尋之後總算解決,解法如下
1. 下載最新的Wineskin Winery
http://wineskin.urgesoftware.com/tiki-index.php?page=Downloads
下載之後執行,按畫面上的 "+" 新增新的Engine
我是下載最新的版本 (WS9Wine2.6)
載好之後就可以先關掉
2. 更新GOG版鐵血聯盟2的Winery engine
GOG版本的鐵血聯盟2預設就是包著Winery來執行
不過版本比較舊,不相容於現在的Mac OS
開啟Finder -> 左邊喜好項目點選應用程式 -> 找到鐵血聯盟2的目錄 ->
右鍵(或是雙指點擊觸控板) 點選顯示套件內容 -> Contents -> Resources -> Game ->
右鍵點選Jagges Alliance 2 -> 顯示套件內容 -> 執行Wineskin
然後在Advanced -> Tools -> Update wrapper
選擇你下載的最新的wrapper就ok了
2017年6月22日 星期四
[工作] 有時用shell比較兩個字串, 結果卻不是你預期的?
比方說, 在Android下,
你想比較product name是不是你要的,
你大概會這麼做:
#!/bin/bash
PRODUCT=`adb shell getprop ro.product.name`
echo "$PRODUCT"
if [ "$PRODUCT" == "MyProduct" ] ; then
echo "Product found!"
else
echo "Not this product."
fi
但是執行結果卻...
$ MyProduct
$ Not this product.
就算得到的product name是你想要的,
但比對結果卻不正確.
把得到的結果轉換成16進位印出,
會發現其實得到的結果有多餘的東西...
adb shell getprop "ro.product.name" | xxd
$ 0000000: 4d79 5072 6f6a 6563 740d0a MyProject..
echo "MyProject" | xxd
$ 0000000: 4d79 5072 6f6a 6563 740a MyProject.
原來取得的值多了一個\r (0d)
解法就是取得值將\r去掉:
BOOT_COMPLETE=`adb shell getprop "ro.product.name" | tr -d '\r'`
再去比對就沒問題了
你想比較product name是不是你要的,
你大概會這麼做:
#!/bin/bash
PRODUCT=`adb shell getprop ro.product.name`
echo "$PRODUCT"
if [ "$PRODUCT" == "MyProduct" ] ; then
echo "Product found!"
else
echo "Not this product."
fi
但是執行結果卻...
$ MyProduct
$ Not this product.
就算得到的product name是你想要的,
但比對結果卻不正確.
把得到的結果轉換成16進位印出,
會發現其實得到的結果有多餘的東西...
adb shell getprop "ro.product.name" | xxd
$ 0000000: 4d79 5072 6f6a 6563 740d0a MyProject..
echo "MyProject" | xxd
$ 0000000: 4d79 5072 6f6a 6563 740a MyProject.
原來取得的值多了一個\r (0d)
解法就是取得值將\r去掉:
BOOT_COMPLETE=`adb shell getprop "ro.product.name" | tr -d '\r'`
再去比對就沒問題了
2017年6月17日 星期六
訂閱:
文章 (Atom)