タグ付けされた質問 「variable-expansion」

7
Windowsコマンドインタープリター(CMD.EXE)はスクリプトをどのように解析しますか?
私はss64.comに出くわしました。これは、Windowsコマンドインタープリターが実行するバッチスクリプトの作成方法に関する良いヘルプを提供します。 ただし、バッチスクリプトの文法、展開する方法と展開しない方法、エスケープする方法については、適切な説明を見つけることができませんでした。 以下は、私が解決できなかった質問の例です。 見積もりシステムはどのように管理されていますか?私が作っTinyPerlスクリプトを (foreach $i (@ARGV) { print '*' . $i ; }、)それをコンパイルし、このように呼ばれます。 my_script.exe "a ""b"" c" →出力は *a "b*c my_script.exe """a b c""" →出力する *"a*b*c" 内部echoコマンドはどのように機能しますか?そのコマンド内で何が展開されますか? for [...] %%Iファイルスクリプトではなくfor [...] %Iインタラクティブセッションで使用する必要があるのはなぜですか? エスケープ文字とは何ですか?パーセント記号をエスケープする方法は?たとえば、%PROCESSOR_ARCHITECTURE%文字どおりにエコーするにはどうすればよいですか?私はそれがecho.exe %""PROCESSOR_ARCHITECTURE%機能することを発見しました、より良い解決策はありますか? ペアはどのように%一致しますか?例: set b=a、echo %a %b% c%→%a a c% set a =b、echo %a %b% c%→bb c% …

30
Bashの$ PATH変数からパスを削除する最もエレガントな方法は何ですか?
より一般的には、Bash環境変数のコロンで区切られたリストからアイテムを削除するにはどうすればよいですか? 数年前に、より高度な形式のBash変数展開を使用する簡単な方法を見たと思ったのですが、そうだとすればそれを見失ってしまいました。Googleをすばやく検索したところ、関連する結果は驚くほど少なく、私が「シンプル」または「エレガント」と呼ぶものは見つかりませんでした。たとえば、sedとawkをそれぞれ使用する2つのメソッド: PATH=$(echo $PATH | sed -e 's;:\?/home/user/bin;;' -e 's;/home/user/bin:\?;;') PATH=!(awk -F: '{for(i=1;i<=NF;i++){if(!($i in a)){a[$i];printf s$i;s=":"}}}'<<<$PATH) 簡単なものは何もありませんか?Bashのsplit()関数に類似したものはありますか? 更新: わざとあいまいな質問をお詫びする必要があるようです。私は特定のユースケースを解決することよりも、良い議論を引き起こすことに関心がありませんでした。幸い、私はそれを手に入れました! ここにはいくつかの非常に巧妙なテクニックがあります。最後に、ツールボックスに次の3つの関数を追加しました。マジックはpath_removeで発生します。これは、主にMartin YorkのawkRS変数の巧妙な使用に基づいています。 path_append () { path_remove $1; export PATH="$PATH:$1"; } path_prepend () { path_remove $1; export PATH="$1:$PATH"; } path_remove () { export PATH=`echo -n $PATH | awk -v RS=: -v ORS=: …

7
Bash変数の最初の文字を取得するにはどうすればよいですか?
私はBash変数を持っています、 $wordこれは時々単語や文です。例: word="tiger" または: word="This is a sentence." 変数にある最初の文字だけに等しい新しいBash変数を作成するにはどうすればよいですか?たとえば、上記は次のようになります。 echo $firstletter t または: echo $firstletter T
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.