不同的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