我正在尝试打印位于文件.chsrc中的路径,这些路径很容易使用echo $ path路径打印,但我需要在列出的每个路径的末尾添加一些东西。即:
/ opt / local / bin:/ usr / ucb:/ usr / bin:
我无法编辑或更改.chsrc文件。我也尝试在C Shell中找到关于连接的东西,但是在我看到的C Shell中,它似乎并没有真正“存在”。如果我听起来很傲慢,我很抱歉,我是C Shell的新手。如果有人有任何指示,建议总是很棒!谢谢!
答案 0 :(得分:0)
echo "$PATH" | sed 's/:/: /g;s/ *$//'
's/
'=替代,'/:/: /
'= targetPattern / replacmentPattern,'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个空格,{{1}内的空格保持原样,尽可能多的“变量”和“文本字符串”旁边的变量不会自动插入空格字符,您必须将它们放入。
我不认为这个问题有任何傲慢态度; - )
但是......在你使用2速贝壳(( - ())度过8年以上之前,请阅读A great Unix Primer处的所有内容,尤其是Why csh is less than perfect scripting language; - )
P.S。欢迎使用StackOverflow(SO)请记住阅读常见问题解答,http://tinyurl.com/2vycnvr,使用灰色三角形http://i.imgur.com/kygEP.png投票选择好的Q / A,并接受最能解决问题的答案,如果任何,通过勾选复选标记,http://i.imgur.com/uqJeW.png