!["serial=${serial##*.}"は何をしますか? [コピー]](https://linux33.com/image/20171/%22serial%3D%24%7Bserial%23%23*.%7D%22%E3%81%AF%E4%BD%95%E3%82%92%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%EF%BC%9F%20%5B%E3%82%B3%E3%83%94%E3%83%BC%5D.png)
重複の可能性:
どのように${0##/}と${0%/}働く?
0:root@SERVER:/ #
0:root@SERVER:/ # serial=$(lscfg -vl hdisk1 | awk '/Serial Number/')
0:root@SERVER:/ # echo $serial
Serial Number...............11BBGG11235
0:root@SERVER:/ #
0:root@SERVER:/ #
0:root@SERVER:/ # serial=${serial##*.}
0:root@SERVER:/ # echo $serial
11BBGG11235
0:root@SERVER:/ #
正確さはどういう意味ですか?
serial=${serial##*.}
する?誰かがこれを説明できますか? Googleは難しいです:D
答え1
これはシェルのパラメータ拡張です。たとえば、
Serial=${serial##*.} - 「.」で区切られた最後のフィールドの値区切り文字を取得します。最後の「。」値をつかみ、残りのデータを印刷します。
parameter result
----------- ------------------------------
${NAME} polish.ostrich.racing.champion
${NAME#*.} ostrich.racing.champion
${NAME##*.} champion
${NAME%%.*} polish
${NAME%.*} polish.ostrich.racing
parameter result
----------- --------------------------------------------------------
${FILE} /usr/share/java-1.4.2-sun/demo/applets/Clock/Clock.class
${FILE#*/} usr/share/java-1.4.2-sun/demo/applets/Clock/Clock.class
${FILE##*/} Clock.class
${FILE%%/*}
${FILE%/*} /usr/share/java-1.4.2-sun/demo/applets/Clock
より多くの例については、以下を参照してください。http://mywiki.wooledge.org/BashFAQ/073