我使用tsch創建腳本來更新給定文件夾中庫的鏈接。找出庫的最新版本,並去掉庫名稱
我可以使用(例如)
ldconfig -v | grep libelf
這給了我
libelf.so.1 -> libelf-0.158.so
libelf.so.0 -> libelf.so.0.8.13
libelf.so.1 -> libelf-0.158.so
,但我不知道怎麼剝只是libelf-0.158.so部分得到圖書館最新版本的結果。我試圖AKW
set lib = `ldconfig -v | grep libelf | awk '$1 == "-> " {gsub(/\/.*$/, "", $2); print $2}'`
使用,但沒有得到任何結果
我也想插入到這個循環將搜索在給定的文件夾中所有的庫鏈接,因爲我不事先知道該文件夾中有哪些庫鏈接,我不希望寫的每一個環節的可能性,像
if (-f libelf.so.1) ln -fs /usr/lib64/libelf-0.158.so libelf.so.1
if (-f libreadline.so.1) ln -fs /lib64/libreadline.so.6.3 libreadline.so.1
if (-f libXv.so.1) ln -fs /usr/lib64/libXv.so.1.0.0 libXv.so.1
'awk'$ 2 ==「 - >」{print $ 3}''? – archemiro
'我正在使用tsch,並且正在嘗試創建一個腳本 - 不要這麼做! [Google「csh why not」](https://www.google.com/search?q=csh+why+not&ie=utf-8&oe=utf-8)。當'libelf.so.1 - > libelf-0.158.so'這樣的輸入行沒有'/'時,你想用'gsub(/\/.*$/,「」,$ 2)做什麼? '?爲什麼在每條輸入行都包含這個腳本時,你在awk腳本中測試' - >'? –