libcom.so
drucken müssen, indem Sie 1.0.0
abziehen, wenn es erste Zeile druckt. schneiden Sie die Zeichenfolge mit Zeichenfolge als Trennzeichen in Shell
#!/bin/sh
data=$(sed '0,/^__VERSION__$/d' "$0")
for d in $data
do
echo with version:
echo $d
echo "with no version"
d1="$(cut -d\.so -f1 <<< $d)"
#Need to save it in a variable for further processing
echo $d1
done
exit
__VERSION__
libcom.so.1.0.0
libclock.so.1.0.0
libstdc++.so.6.0.20
libxml.so.2.7.8
libmi.so.1.0.0
librt.so.6.6.5
libcsapi.so.1.0.0
Fehler, wie cut: the delimiter must be a single character
, was ist der beste Weg, dies zu tun?
Hinweis verwenden können Das ist * nicht * ein Bash-Skript. Selbst wenn Ihre Standard-Shell bash ist, bewirkt die Verwendung eines shebang von '#!/Bin/sh', dass bash im * POSIX-Kompatibilitätsmodus * funktioniert, in dem viele Bash-Funktionen nicht verfügbar sind. '#!/usr/bin/env bash' ist ein vernünftiger Standard-Shebang, es sei denn, Sie ziehen es vor, auf einen bestimmten Pfad für bash zu zeigen (eine Lösung, die möglicherweise nicht portierbar ist). – ghoti