問題タブ [tilde-expansion]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windowsファイルパターンのチルダの意味
検索するパターンがあります。「*.txt」と言います。
今、そこにリストしたくないファイルがいくつかあります。このパターンには合わないと思います。しかし、Windowsではそうです。
レガシー 8.3 ファイル名の短縮形を作成するためにチルダ文字が使用されていることは知っています。つまり、LongFilename.json は LONGFI~1.JSO の可能性があります。しかし、ファイル検索パターンのウィンドウで何らかの形で処理されているとは知りませんでした。彼らです。それらが何を意味するのか、ファイルを自分のやり方で一致させる方法についてのドキュメントが見つかりません。
私の問題は短い形式ではありません。もしくは直接関係ないと思います。
ファイル「A.txt」があります。今度は一時ファイルが欲しくて「A.txt~」を使いました。通常は表示されない UNIX バックアップ ファイルです。しかし、Windows では、それ自体で特別な意味を持つべきではありません。私のアプリケーションのみ。
「*.txt」ファイルのリストが必要です。コマンド dir *.txt は、驚いたことに、同じディレクトリ内のすべての .txt~ ファイルも返します。そして、私はそれらを望んでいません。Win32 API の FindFileFirst を使用します。ドキュメントでチルダ文字については何も見つかりませんでした。FindFileFirst(" .txt", handle) はファイル "A.txt~" も返します。それらを除外するためにいくつかのフラグを使用できますか? 「。」のように、特別な条件を作成できることを知っています。と ".."。~ 演算子はどのように機能しますか? A.txt~1 も一致します。チルダ以降はすべて無視されますか? それは機能ですか、それともバグですか?
Windows 7 Professional、64 エディションでそれをテストしています。
bash - Linux パスのスラッシュを bash スクリプトの引用符で囲む必要があるのはいつですか
最初の拡張は機能しないのに、2 番目の拡張は機能するのはなぜですか?
チルダは引用符の外側で展開する必要があることは知っていますが、予想外にスラッシュも外側にある必要がありました。
shell - チルダ (~/) がシェル スクリプトの if then ステートメントで機能しない
次のスクリプトがあります
ファイルがそこにあることは知っていますが、 ~/ ?
ファイルが見つからない
bash - $PATH 評価時のチルダ展開
私のシステム上*
スクリプトを見つけてtempdir/tempscript
印刷しますh
。
ただし、 echo$PATH
を実行する~/tempdir
と、最後に表示されるため、展開されませんでした。割り当てを二重引用符で囲んでいるため、これが起こると予想されます。
ただし、評価時にチルダ展開が発生する理由に関するドキュメントは見つかりません$PATH
。(PATH 変数にはまだ が含まれていることに注意してください~
。)
これは移植可能な動作ですか?
* GNU bash 3.2 を搭載した Mac OS X
bash - bashでチルダ展開と変数置換を組み合わせる
root として bash を実行していて、ユーザーのホーム ディレクトリを chown したいとしますada
。ada
という変数に格納されているとも言います$USER
(これはスクリプトから実行しているためです)。
以下を試したところ、
/home/root/ada
シェルは最初にチルダ展開を実行したため、 ではなくchown を試みました/home/ada
。
ネストされた置換と適切なエスケープでそれを行う方法はありますか?
java - 相対コマンドライン引数を取得... Javaで
いいえ、プロジェクトや作業ディレクトリに相対的という意味ではありません。次のコマンドjava -jar myJar.jar ~/
は文字列を提供する必要があることを意味し"/home/user"
ます...これは期待どおりに機能していないようです。Eclipse の「Run Configurations」メニューを介して引数を渡していますが、これが問題を引き起こしているかどうかはわかりません。Runnable Jar から同じ結果が得られます...不正な形式の URL 例外がスローされます...しかし、URI もそれを好みません
この機能を実装する方法を知っている人はいますか? 引数~/
が次のように渡される(String[] args)
ように"/home/user"
?
linux - シェルスクリプトでパスのチルダが展開されないのはなぜですか?
手動でインストールした Java (システム全体のデフォルト Java ではない) を Android Studio ランチャー (studio.sh) で使用しようとしました。PATH
ファイルでandを既に宣言しているのでJAVA_HOME
、.bashrc
シェル スクリプトでそのファイルを読み込んだだけです。
. /home/foobar/.bashrc
しかし、何らかの理由で、$JAVA_HOME/bin/java
まだスクリプトによって実行可能ファイルとして認識されませんでした。
ログを追加したところJAVA_HOME
、~/install/java... として展開されていることがわかりました。つまり、チルダ演算子がホーム ディレクトリに展開されていませんでした。
いろいろ調べてみましたが、展開されていない理由が見つかりませんでした。チルダは Bash 固有の機能ですか (スクリプトは を使用し#!/bin/sh
、Linux Mint は bash ではなくダッシュを使用します)? 状況によってはチルダが機能しませんか?
~
宣言を$HOME
に置き換えた.bashrc
ところ、動作したため、HOME は実行時に認識されます。