0

$path をエコーするだけで簡単に印刷できるファイル .chsrc にあるパスを印刷しようとしていますが、リストされている各パスの最後に何かを追加する必要があります。すなわち:

/opt/local/bin: /usr/ucb: /usr/bin:

.chsrc ファイルを編集または変更できません。私はまた、Cシェルでの連結について何かを見つけようとしましたが、それは私が読んだものからCシェルには実際には「存在しない」ようです。とにかく傲慢に聞こえたら申し訳ありませんが、私は C シェルに慣れていません。誰かが指針を持っている場合、アドバイスは常に素晴らしいです! ありがとうございました!

4

1 に答える 1

0
echo "$PATH" | sed 's/:/: /g;s/ *$//' 

' s/'=substitute, ' /:/: /'=targetPattern/replacementPattern, ' g'=グローバルに (現在の行で) 置換を行う, ' ;'= コマンドセパレータ, ' s/ *$//'= 行末の後続スペースを置換する ' $', replacementPattern =' //'=(何もない、空、灘、ジルチ;-)

コマンドライン評価で変数内のスペースによって単語分割が発生しない限り、dbl-quotes で囲まれた環境変数を常にエコーすることをお勧めします。特に PATH では、スペース char がパスで有効であるためです。

一般に、連結は CSH では次のように機能します。

set var1 = text1
set var2 = myText

echo "someText "$var1     "  more stuff"$var2
# -----------^^^^^^^^^^^^^^^^--- deliberate, copy paste as is

出力を印刷するための csh はありませんが、これらの行をカット アンド ペーストすると、 の外側のスペース" .... "が 1 つに減り、 の内側のスペースが"...."そのまま残り、必要な数だけ、AND 変数が表示されることがわかります。 、「テキスト文字列」の横に出てくるスペース文字は自動的に挿入されません。挿入する必要があります。

この質問に傲慢さは見られません;-)

しかし... 二流のシェルを使用して 8 年以上の人生を過ごす前に ( ;-( )、A great Unix Primer、特にWhy csh is less than perfect scripting language ;-) のすべてをお読みください;-)

PS StackOverflow へようこそ (SO) FAQ ( http://tinyurl.com/2vycnvr ) を読み、灰色の三角形を使用して良い Q/A に投票して ください ( http://i.imgur.com/kygEP.png )。問題を最もよく解決する 1 つの回答を受け入れるには、チェックマーク記号を押します。http://i.imgur.com/uqJeW.png

于 2012-04-10T03:42:18.037 に答える