cshプログラムの :t(:gt, :h ...)などパス名指定子の仕様に関して教えて頂きたく思い投稿いたしました。
これらの演算子はフルパス表示からフアイル名部の文字列を
取り出す際に(/bin/ls-->ls)単に最後のスラッシュより前の部分を省略するという処理ではないのでしょうか?
例1のような場合はOKなのですが例2のような場合は利かないのです!!
変な引数を与えられた場合にバッチスクリプトの使い方をechoするところで$0を使いたいのですが、このコマンドはどのような場所から実行されるか分からないので、:t を用いてバッチファイル名だけを表示させたいと思っています。
[1: OK例]
set qqq = (/opt/sfw/etc/* )
echo "$a:gt"
-<結果>---
enscript.cfg
esd.conf
fnrc
ftpaccess
ftpconversions
...
[2: NG例]
test.csh
#! /bin/csh -f
echo "usage of $0:t"
--<結果> ---
usage of /export/home/matumoto/study/csh/dirFlag.csh:t
以上、宜しくお願いいたします。
※ 作業はsolaris 8で行っています。
No.3ベストアンサー
- 回答日時:
#2さんの回答(後者のほう)でOKです。
>set a = $0
>echo "usage of $a:t"
他にも、/usr/bin/basenameを使うという手もあります。
echo "usage of `basename $0`"
Bシェル等ではこの方法ですね。
$0には、:tなどの修飾子が効かないようです。
ちなみに引数の$1($argv[1])は修飾子は効きます。
#$0はシェル変数ではないから?
$0には:tは利かないのにいったん別の変数にすると利くというのは余り直感的でなく、C-SHELLは作りこみが甘いといわざるを得ないと思わず思ってしまいました。
今回の一件で以下を学ぶことが出来ました。
"basename $0"が使える
$0からいったん他の変数に乗せかえると:tが使える
$1以降なら使える
以上有難うございました。
No.2
- 回答日時:
私も最近cshはご無沙汰なので自信なしですが、
No.1さんの
> その機能はインタラクティブシェルとして使用した時のコマンドラインヒストリに対する機能です。
というのは間違いだと思います。
ご質問の機能はヒストリー機能とは別のものです。
また、$0はスクリプトの引数(コマンドを含む)を示すものですので、
sourceを使ったのではむしろダメだと思います。
echo "usage of ${0:t}"
とか
set a = $0
echo "usage of $a:t"
とか試されてみては。
アドバイス有難うございました。
一番目の方法は既にご指摘ありましたとおり、"文法があいまい"との事でNGでしたが、2番目の方法ではOKでした。
No.1
- 回答日時:
cshは普段使っていないので参考になるかわかりませんが、、、
その機能はインタラクティブシェルとして使用した時のコマンドラインヒストリに対する機能です。
したがって、スクリプトインタプリタとしてcshを使用した場合は使えないと思います。
さて、ここから先はcshというよりunixの話ですが、
cshのコマンドラインからcshスクリプトを呼び出した場合どうなるかというと、OSがスクリプトの先頭行を見て新しい/bin/cshプロセスを起動してスクリプトを実行します。
つまり、コマンドラインを出していたcshとスクリプトを実行しているcshは別プロセスであり、前者のコマンドラインのヒストリは後者のcshと無関係です。
ちなみに、2のスクリプトもsourceを使って呼び出せばうまくいくかもしれません(未確認)
なお、ご質問のような処理をしたい場合は通常cshのビルトイン機能ではなく、basenameコマンドを使います。
例) echo "usage of `basename $0`"
ちなみに個人的には、スクリプトはcshよりshで書いた方がいいと思います。
どうも有難うございました。basenameという便利なコマンドがあるのを知りませんでした。
参考になりました。
> スクリプトインタプリタとしてcshを使用した場合は使えない
とありましたが、他の方のご指摘がありましたようにこれはシェルスクリプトでもしよう出来るものとして解説がされています(Bil Joy著: C shell フィールドガイド にて)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら…
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
cshで拡張子を除いたファイル名を取得したい
その他(プログラミング・Web制作)
-
cshの文字列操作(0埋め)
その他(プログラミング・Web制作)
-
Subversionのファイルの文字コード変換
サーバー
-
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
windows11でクイックスキャン等...
-
windows11 きれいなロック画面...
-
windows11におけるファイルの並...
-
エクスプローラのアクティブウ...
-
Windows11のデスクトップのアプ...
-
Windows11 システム通知音がも...
-
アイコンに、四角い枠が出来て...
-
VirtualBoxのゲストOS起動時にU...
-
MS-DOS 6.22のダウンロード
-
Windowsで大量の画像サイズを半...
-
windows11プロダクトキー購入に...
-
Windows Media Playerを開くと...
-
「ウインドウズアップデートの...
-
勝手に無変換になる
-
Win11にできますか?
-
.txtって、縦書きにはならない...
-
miniconda python
-
Microsoftのページだけ全て「申...
-
Widgets.exeがオーバーランしま...
-
SHARPのBRAIN(第一世代)をWindo...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクスプローラのアクティブウ...
-
windows11におけるファイルの並...
-
Windows Media Playerを開くと...
-
windows11 きれいなロック画面...
-
アイコンに、四角い枠が出来て...
-
MS-DOS 6.22のダウンロード
-
windows11でクイックスキャン等...
-
Windows11 システム通知音がも...
-
Windows11のデスクトップのアプ...
-
Win11のインストール要件でゆる...
-
古くなったWindowsのパソコンを...
-
Win11にできますか?
-
Windows10 及び11でのQRコード...
-
Windowsの古いゲーム(32bit OS...
-
VirtualBoxのゲストOS起動時にU...
-
Windowsで大量の画像サイズを半...
-
タブレットばっかり使っていた...
-
Windows11でタスクバー・スタ...
-
windows11プロダクトキー購入に...
-
Raspberry Pi 3 A+ ブラウザ遅い
おすすめ情報