我使用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脚本中测试' - >'? –