bash vs csh (从csh 转换为 bash)

本文总结了从csh转向bash的原因及两者的主要区别,包括如何在bash中进行重定向操作,如将stdout和stderr合并到同一文件,并提到了bash中的反向引用backquote用法。

http://homepage2.nifty.com/freeline/bash_vs_csh.html

 

终于 决意 从csh 转换为 bash,关于bash与 csh的 区别,把笔记 总结 如下。今后,在使用 bash的 过程中,也许会追加新发觉的东西。

功能bashcsh备考
shell变量的定义

VAR=X

AVAR=(X1 X2)

set VAR = X

set AVAR = (X1 X2)  

在bash中,"="的前后不能有空白
环境变量的定义

export VAR=X

VAR=X

export VAR

setenv VAR X在bash中,"="的前后不能有空白
命令搜索路径的定义 PATH=/bin:/usr/binset path=(/bin /usr/bin) 或
setenv PATH /bin:/usr/bin
 
命令hash的更新(不要) rehash 





 

 








redirect

把stdin从file CMD < FILE CMD < FILE bash与csh方法相同 把stdout向file CMD > FILE CMD > FILE bash与csh方法相同

把stdout向file

(shell变量noclobber已被设定

并且文件存在的场合)

CMD >| FILE CMD >! FILE   向stdout追加 CMD >> FILE CMD >> FILE   把stdout与stderr向同一文件

CMD &> FILE

CMD > FILE 2>&1

CMD >& FILE

在bash,下记亦可。

CMD >& FILE

把stdout与stderr向同一文件

(shell变量noclobber已被设定

并且文件存在的场合)

(在bash中,在这个场合下,不考虑

noclobber的设定)

CMD >&! FILE   把stdout与stderr向不同文件 CMD > FILE1 2>FILE2 (CMD > FILE1) >& FILE2 在csh中,变为使用subshell的方法 here-document CMD << LABEL CMD << LABEl bash与csh方法相同 pipe CMD1 | CMD2 CMD1 | CMD2 bash与csh方法相同 命令置换(向命令的输出的命令行的置换) CMD1 $(CMD2)

CMD1 `CMD2`

(反向引用backquote)

在bash中,可以采取嵌套的方法


 






 

 

 



 

 

 

 

流程控制

if

if CON1 ; then

 CMD1

elif CON2 ; then

 CMD2

else

 CMD3

fi 

 

(CONDをコマンドとして実行した終了ステータスで判定)

if( COND1 ) then
  CMD1
else if(COND2) then
  CMD2
else
  CMD3
endif

(CONDの式としての値で判定)

bashでCONDとして式を用いる場合は下記
[ EXPR ]
または、
test EXPR
for
for VAR if LIST; do
 CMD
done
foreach VAR (LIST)
 CMD
end
 
while while COND ; do
 CMD
done

while (COND )
 CMD
end

 

bashでは下記もあり
until NOT_COND ; do
 CMD
done
case
 case EXP in
 PAT1)
  CMD1;;
 PAT2)
  CMD2;;
 *)
  CMD3;;
esac
switch (EXP)
case LABEL1:
  CMD1
  breaksw
case LABEL2:
  CMD2  breaksw
default:
  CMD3
endsw
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值