#!/bin/bash#!/bin/cshそれに、#!/bin/csh -fこれらの違いをしっかり理解せず怪我をした。
教訓
・シェルの全ての行の意味、シェルを実行する際のコマンドの意味、実行したらどうなるのか、全て理解してから実行せよ
・実行前にサーバーが開発環境であることを確認せよ
・どんなに急かされても決して焦らず作業せよ
本題
【#!/bin/bash】と【#!/bin/csh】と【#!/bin/csh -f】の意味
#!/bin/bashは、このスクリプトがバッシュで実行されることを期待しているの意味。
#!/bin/cshは、このスクリプトがシーシェルで実行されることを期待しているの意味。
#!/bin/csh -fは、このスクリプトがシーシェル(非対話モード)で実行されることを期待しているの意味だ。
たとえば冒頭に #!/bin/csh と記載された ccc.sh があるとする。
ちなみに拡張子は .csh とすべきだが、.sh でも解釈に影響しない。これも良くない。混乱のもと。#!/bin/cshと書いたなら、拡張子も.cshに。
これを、
sh ccc.sh で実行したら予期せぬ動作になる。おそらく sh として動かそうとする。これができてしまうのも良くない。矛盾があるならエラーになるべきだと思う。だがならないので、き、き、気を付けましょう。。
csh ccc.sh で実行したら csh として動く。
そして、./ccc.sh で実行したら、冒頭の#!/bin/csh 記載により csh として動く
シーシェルで書かれたものをバッシュとして動かさないようにするには、冒頭の1行を確認し、それに合わせて実行するか、./xxxで実行するのがよいでしょう。
毎年のことですが人間ドックの胃の検査が嫌で数種類のAIに相談しました。
すると、人間ドックは任意です、とか、
病院に言えば胃の検査はスキップできる場合がある、
とか言われてそういうのもありか〜と思ったわけですが、
それはこちらが人間ドックが憂うつと相談したから寄り添ってくれたんですね。
わかります、そのような人はいっぱいいます、任意じゃないです、医学的にも数年に一度でいいです、
そんな風に。
私の問いかけを強化する方向で話が進みます。
ふと思いました。
普通に毎年受けてきたし、普通に受ければええね、そこら辺のおじさんおばさん皆やってることだし、と。
自分の頭で考えないと寄り添われた結論に至ってしまう。
ここ数年、調べものも悩み相談も何もかもAIに頼ってた。
これはまだやったことないけど、
極端にいうと身内への 返信もAIに頼ることになりそうですよね、このままいくと。
大変な事が起きた!ちょっと待ってねAIに聞くから!ってなりかねない。
それが最善手な場合もあるでしょうけど。
私は頭を使いたいなと思ったので、少しAIは封印です。
深く考えずコピペしたのがダメでした。
これは完全に私のせいですね。
ThinkPadのX230にDebian12を入れていましたが、
不要になったデスクトップ環境を消したくて某Gemin○さんにコマンドを聞き実行したところ、CUIになってしまった。
GUIにしようと少しだけ努力したのですが面倒なのでDebian12再インストール、たぶん起動設定ミスり、うまく立ち上がらくなってしまった。
私物だからよかったものの、仕事だったら・・・
何事も意味を理解してから実行しないとね。
というか、AIを使わない方が頭を使ってかえって 良いのかもしれないね。
昔はAIのない生活でしたものね。
時々思うのですが、ガラケー使ってたくらいの時代は良かったですよね。
思い出補正もあるのでしょうけど。
でもそのころが青春時代ですから、懐かしむのも悪くないですよね。