echo("備忘録");スマートフォン用の表示で見るecho("備忘録");IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。プログラミング昨日(2018/01/20)、豊橋市で行われた「ブイアールサンダー」というVR(XR)関連のイベントに参加しました。XR関連の知識が得られたのも大きいですが、何より大学時代の思い出の地、豊橋でIT関連のイベントが開かれたというのが嬉しかったです。僕は豊橋市民ではないですが、豊橋市のこういうイベントには積極的に参加&協力したいな、と心から思いました。(てか、懇親会に参加できなかったのが、今でも悔やまれる...)uzura.doorkeeper.jpさて、10月から参画しているプロジェクトでガッツリUnixやLinuxに触れることになり、その関係でシェルスクリプト(shやbash)もバリバリ書いています。最初は戸惑いましたが、決して難易度は高くないし、慣れると快適ですね。Linuxもあることだし、Linuxに触れる機会もさらに多くなるでしょう。"ディレクトリがない"fiこれをあるディレクトリ(もちろん実在)で動かしたら、まあ上二つのどちらかだと思ったんですが、結果は"ディレクトリがない"だったんです。「???」と思って調査したところ、どうやら'-d'や'-f'などはパーミッション次第では、実際のディレクトリ有無と違う動作になるらしく。調べると、ファイル&ディレクトリ関連のコマンドも、パーミッション次第で動作結果が異なる事がわかりました。...ってわけで、仕事が暇だったので実際に調べてみました。&削除は、対象ファイル自体の権限は全く関係なし。(ディレクトリの権限は「中のファイル自身」ファイルの権限は「そのファイルの中身」を扱う権限、ということなのかも)'cp'コマンドは、ちゃんとファイルの'r'権限も必要(「中身をコピーするから」という意味合い?)'mv'コマンドは、最初は'cp'と全く同じと思ったけど、「切り取り」は'rm'、「貼り付け」は'cp'と同様と考えると、確かに納得。その2(本題).シェルスクリプト※調べたスクリプトは「-d(ディレクトリ有無)」と「-e(ファイル有無)」で、下記スクリプトで確認。※${dir}や${file}は確実に存在する、という前提。※どちらも「対象ディレクトリ/ファイルの親フォルダ」の権限ファイル&ディレクトリ【結論】こちらも、そのディレクトリ&ファイル自体の権限は全く関係なし。1(≒false)だからまだいいけど、'-d'は権限がないとエラーになるから、判定が大変かも。(初めに'-d'('-e')の${?}(=ステータス)でエラー判断→エラーがなければ、次に実際の有無判断?でも'-d'('-e')を2回実行するのは、あまりスマートじゃないような...)いずれにしろ、適切な権限がないと、実際のファイル有無と違う判定をする可能性がある。結論として、ファイル関連の各種コマンドやシェルスクリプトの実行時には、パーミッション(特に親フォルダの)には要注意、という話でした。冒頭に書いた「ブイアールサンダー」の件ですが「半田市から...」と言ったら、めちゃくちゃ驚かれました。豊橋の人からしたら、そんなに遠いですかね、半田~豊橋って。(今では一般道でも約1.5時間ですからね。昔はr41がなく、R247で行くしかなくて、2時間かかってましたから。Outputs項目に関する記載を追加しました。Homeを衝動買いしました。»プロフィールid:Makky12IT技術やプログラミング関連など、技術系の事を備忘録的にまとめています。C#/JavaScript/TypeScript//PHP/Python/Vue.js/Bootstrap等でWebアプリのバックエンド設計・開発や、フロントエンドのデザイン実装をしています。Code)やCI/CDとかを考えるのがほとんどです。Lambdaのテストを実施する【AWS】Cognitoによる認証を実装する(その2)月別アーカイブ参加グループプログラミングはてなブログをはじめよう!Makky12さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。