Cシェルの修飾子
この記述ってナンだろな?
仕事上のCシェルのソースで見たこともない記述を見つけた。set var = "hoge"; $var:r # ←こんなの調べてみたら、
どうやらCシェルは変数に修飾子をつけることが出来るらしい。
調べたことを自分用にメモ。
修飾子一覧
$string:h パス名の最後の部分を除いたパス名 $string:t パス名の最後の部分だけ $string:r 拡張子を除いた部分 $string:e 拡張子だけ $string:s/x/y/ x を y に置換する $string:q 文字列をクォートする $string:x 文字列を空白やタブで区切り、クォートする
テストスクリプト
#!/bin/csh set path = "/usr/local/home/test.sh" set word = "Hello World" echo $word:h # → /usr/local/home echo $word:t # → test.sh echo $word:r # → /usr/local/home/test echo $word:e # → sh # これ以降の修飾子は # Linuxだと動いたけどSolarisだと動かなかった echo $word:s/m/g/ # → /usr/local/hoge/test.sh echo $word:q # → Hello World echo $word:x # → Hello World
0 件のコメント:
コメントを投稿