设为首页 收藏本站
查看: 332|回复: 0

各shell 之间的差异

[复制链接]

尚未签到

发表于 2018-8-24 10:32:31 | 显示全部楼层 |阅读模式
不同的shell 有不同的写法,以下是各个shell的比较:  
Feature
  
C/TC
  
Bourne
  
Bash
  
Korn
  

  
Variables:
  

  
Assigning values to local variables
  
set x = 5
  
x=5
  
x=5
  
x=5
  

  
Assigning variable attributes
  

  
declare or
  

  
typeset
  

  
typeset
  

  
Assigning values to environment variables
  
setenv NAME Bob
  
NAME='Bob'; export NAME
  
export NAME='Bob'
  
export NAME='Bob'
  

  
Read-Only Variables:
  

  
Accessing variables
  

  
echo $NAME
  

  
set var = net
  

  
echo ${var}work
  

  
network
  

  
echo $NAME
  

  
var=net
  

  
echo ${var}work
  

  
network
  

  
echo $NAME
  

  
var=net
  

  
echo ${var}work
  

  
network
  

  
echo $NAME or print $NAME
  

  
var=net
  

  
print ${var}work
  

  
network
  

  
Number of characters
  
echo $%var (tcsh only)
  
N/A
  
${#var}
  
${#var}
  

  
Special Variables:
  

  
PID of the process
  
$$
  
$$
  
$$
  
$$
  

  
Exit status
  
$status, $?
  
$?
  
$?
  
$?
  

  
Last background job
  
$! (tcsh only)
  
$!
  
$!
  
$!
  

  
Arrays:
  

  
Assigning arrays
  
set x = ( a b c )
  
N/A
  

  
y[0]='a'; y[2]='b'; y[2]='c'
  

  
fruit=(apples pears peaches plums)
  

  
y[0]='a'; y[1]='b'; y[2]='c'
  

  
set –A fruit apples pears plums
  

  
Accessing array elements
  
echo $x[1] $x[2]
  
N/A
  
echo ${y[0]} ${y[1]}
  
print ${y[0]} ${y[1]}
  

  
All elements
  
echo $x or $x

  •   
    N/A
      
    echo ${y
  • }, ${fruit[0]}
      
    print ${y
  • }, ${fruit[0]}
      

      
    No. of elements
      
    echo $#x
      
    N/A
      
    echo $y{#
  • }
      
    print ${#y
  • }
      

      
    Command Substitution:
      

      
    Assigning output of command to variable
      
    set d = `date`
      
    d=`date`
      
    d=$(date) or d=`date`
      
    d=$(date) or d=`date`
      

      
    Accessing values
      

      
    echo $d
      

      
    echo $d[1], $d[2],
      

      
       ...
      

      
    echo $#d
      

      
    echo $d
      
    echo $d
      
    print $d
      

      
    Command Line Arguments (Positional Parameters):
      

      
    Accessing
      

      
    $argv[1], $argv[2]  or
      

      
    $1, $2 ...
      

      
    $1, $2 ... $9
      
    $1, $2, ... ${10} ...
      
    $1, $2, ... ${10} ...
      

      
    Setting positional parameters
      
    N/A
      

      
    set a  b c
      

      
    set `date`
      

      
    echo $1 $2 ...
      

      
    set a  b c
      

      
    set `date` or set $(date)
      

      
    echo $1 $2 ...
      

      
    set a  b  c
      

      
    set `date` or set $(date)
      

      
    print $1 $2 ...
      

      
    No. of command line arguments
      

      
    $#argv
      

      
    $# (tcsh)
      

      
    $#
      
    $#
      
    $#
      

      
    No. of characters in $arg[number]
      
    $%1, $%2, (tcsh)
      
    N/A
      
    N/A
      
    N/A
      

      
    Metacharacters for Filename Expansion:
      

      
    Matches for:
      

      
    Single character
      
    ?
      
    ?
      
    ?
      
    ?
      

      
    Zero or more characters
      
    *
      
    *
      
    *
      
    *
      

      
    One character from a set
      
    [abc]
      
    [abc]
      
    [abc]
      
    [abc]
      

      
    One character from a range of characters in a set
      
    [a–c]
      
    [a–c]
      
    [a-c]
      
    [a–c]
      

      
    One character not in the set
      

      
    N/A  (csh)
      

      
    [^abc]  (tcsh)
      

      
    [!abc]
      
    [!abc]
      
    [!abc]
      

      
    ? matches zero or one occurrences of any pattern in the parentheses. The vertical bar represents an OR condition; e.g., either 2 or 9. Matches abc21, abc91, or abc1.
      
         abc?(2|9)1
      
    abc?(2|9)1
      

      
    Filenames not matching a pattern
      
    ^pattern (tcsh)
      

      
    I/O Redirection and Pipes:
      

      
    Command output redirected to a file
      
    cmd > file
      
    cmd > file
      
    cmd > file
      
    cmd > file
      

      
    Command output redirected and appended to a file
      
    cmd >> file
      
    cmd >> file
      
    cmd >> file
      
    cmd >> file
      

      
    Command input redirected from a file
      
    cmd < file
      
    cmd < file
      
    cmd < file
      
    cmd < file
      

      
    Command errors redirected to a file
      
    (cmd > /dev/tty)>&errors
      
    cmd 2>errors
      
    cmd 2> file
      
    cmd 2> errors
      

      
    Output and errors redirected to a file
      
    cmd >& file
      
    cmd > file 2>&1
      
    cmd >& file or cmd &> file or cmd > file 2>&1
      
    cmd > file 2>&1
      

      
    Assign output and ignore noclobber
      
    cmd >| file
      
    N/A
      
    cmd >| file
      
    cmd >| file
      

      
    here document
      

      
    cmd

  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-555870-1-1.html 上篇帖子: 常用SHELL软件命令 下篇帖子: 调试shell 程序
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表