我正在尝试打印位于文件 .chsrc 中的路径,该文件只需回显 $path 即可轻松打印,但我需要在列出的每个路径的末尾添加一些内容。IE:
/opt/local/bin: /usr/ucb: /usr/bin:
我无法编辑或更改 .chsrc 文件。我也试图在 C Shell 中找到一些关于连接的东西,但从我读到的内容来看,这似乎在 C Shell 中并不真正“存在”。无论如何,如果我听起来很自大,我很抱歉,我是 C Shell 的新手。如果有人有任何指示,建议总是很棒的!谢谢!
我正在尝试打印位于文件 .chsrc 中的路径,该文件只需回显 $path 即可轻松打印,但我需要在列出的每个路径的末尾添加一些内容。IE:
/opt/local/bin: /usr/ucb: /usr/bin:
我无法编辑或更改 .chsrc 文件。我也试图在 C Shell 中找到一些关于连接的东西,但从我读到的内容来看,这似乎在 C Shell 中并不真正“存在”。无论如何,如果我听起来很自大,我很抱歉,我是 C Shell 的新手。如果有人有任何指示,建议总是很棒的!谢谢!
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