0

我正在尝试打印位于文件 .chsrc 中的路径,该文件只需回显 $path 即可轻松打印,但我需要在列出的每个路径的末尾添加一些内容。IE:

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

我无法编辑或更改 .chsrc 文件。我也试图在 C Shell 中找到一些关于连接的东西,但从我读到的内容来看,这似乎在 C Shell 中并不真正“存在”。无论如何,如果我听起来很自大,我很抱歉,我是 C Shell 的新手。如果有人有任何指示,建议总是很棒的!谢谢!

4

1 回答 1

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

' s/'=substitute, ' /:/: /'=targetPattern/replacementPattern, ' g'=全局替换(在当前行), ' ;'= 命令分隔符, ' s/ *$//'= 替换行尾的任何尾随空格 ' $', replacementPattern =' //'=(什么都没有,空的,nada,zilch;-)

最好始终回显由 dbl-quotes 包围的任何 env var,除非您希望变量中的任何空格导致命令行评估中的分词。特别是对于 PATH,因为空格字符在路径中是合法的。

一般来说,连接在 CSH 中的工作方式是这样的

set var1 = text1
set var2 = myText

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

我没有 csh 来打印输出,但是剪切并粘贴这些行,您会看到 之外的空格" .... ",减少到 1 个空格,内部的空格"...."保持原位,任意数量,以及变量,在“文本字符串”旁边碰到了不会自动插入空格字符,你必须把它们放进去。

我在这个问题上没有看到任何傲慢;-)

但是...在您使用 2nd rate shell (;-() 度过 8 年多的生命之前,请阅读A great Unix Primer中的所有内容,尤其是为什么 csh 不是完美的脚本语言;-)

PS 欢迎使用 StackOverflow (SO) 请记住阅读常见问题解答,http ://tinyurl.com/2vycnvr ,使用灰色三角形为好的 Q/A 投票, http: //i.imgur.com/kygEP.png,并接受一个最能解决您的问题的答案,如果有的话,请按下复选标记, http: //i.imgur.com/uqJeW.png

于 2012-04-10T03:42:18.037 回答