http://www.bbsxgb.com/?id=21

来源:互联网 发布:江苏网络电视台 编辑:程序博客网 时间:2024/06/04 18:29
什么是shell语言?   
  1.shell是用户与linux内核之间交互操作的一种接口,通常是bash shell.     
2.shell是一门编程语言,即shell脚本(解释行语音)   
  3.一个系统可以存在多个shell,不同的shell支持的语法不同            
 shell  script :脚本编程          
   .sh 意味着脚本的sh的语法         
    .csh cshell的语法        
     .base  base的语法
shell编程开发   
    在.sh文件内容的顶部加上  #!/bin/bash    
  相对或者绝对路径执行shell的时候(例如     ./demo.sh)必须在文件上加上可执行的权限    
   sh就可以直接运行,解释器执行(例如     sh  demo.sh)
. shell的变量  
   shell的变量分为系统变量鹤用户自定义变量     
   系统变量例如 $HOME  $PWD  $USER Bash
[log_user_5i5j@ms_nginx_01 ~]$ echo $HOME /home/log_user_5i5j [log_user_5i5j@ms_nginx_01 ~]$ echo $PWD /home/log_user_5i5j
[log_user_5i5j@ms_nginx_01 ~]$ echo $USER log_user_5i5j   
  用户自定义变量,通常大写,=两边不能有空格,可以有下划线    
 set查询系统中的所有变量     
 unset 撤销定义的变量    
readonly  定义的静态变量,不能撤销也不能修改。等同于java的final.    
export 可以把变量提升为全局,可以提供其他的shell使用。
特殊变量     a=`ls-la` 反引号,运行反引号里面的命令并返回给a,等同于a=$(ls-la)  
   #?表示上一个命令退出的状态,0为成功,大于0为未执行成功    
 $$表示当前进程号     
$0当前的脚本名称    
 $n,占位符,输入参数。(n>=1)   
  $*和$@ 表示参数列表,当成数组使用。
$*在同一行 $@换行 运算符      格式expr m + n 或者 $((m+n)),expr 和变量之间有空格  Bash [log_user_5i5j@ms_nginx_01 ~]$ a=`expr 2 + 3`
[log_user_5i5j@ms_nginx_01 ~]$ echo $a 5
[log_user_5i5j@ms_nginx_01 ~]$ expr `expr $a ` \* 4 20  
  let bash中用于计算的工具,格式 let m+n ,+中间没有空格 Bash
[log_user_5i5j@ms_nginx_01 ~]$ let a=1+1
[log_user_5i5j@ms_nginx_01 ~]$ echo $a 2
[log_user_5i5j@ms_nginx_01 ~]$ let a=$a+2
[log_user_5i5j@ms_nginx_01 ~]$ echo $a 4
流程控制
1.if语句  if [条件测试]       
 then            # 为true执行     
  else            # 为false执行    
 fi  
2.for in语句   
  for 变量 in 传参     
do         #执行    
 done
3.while语句   
  while 条件语句    
 do         #执行  
  done;
总结
编辑文件
 vim    demo.sh  
Bash
#!/bin/base a=abcd
echo $a
echo '占位符段!begin'
echo '第一个占位符'$1
echo '第二个占位符'$2
echo '第三个占位符'$3
echo '占位符段!
end' echo ''
echo '执行$@循环!begin'
index=0;
for p in $@
do
index=`expr $index + 1` #同等于
let index=$index+1
注意 expr 的+要加空格
let的+不能加空格
echo '第'$index'个变量'$p
sleep 2
done
echo '执行$@循环!end'
执行结果:
Bash
[log_user_5i5j@ms_nginx_01 ~]$ sh demo.sh hello word aabbcc abcd
占位符段!begin
第一个占位符hello
第二个占位符word
第三个占位符aabbcc 占位符段!
end 执行$@循环!begin 第1个变量hello 第2个变量word 第3个变量aabbcc 执行$@循环!end 0 上一条命令执行成功
阅读全文
0 0
原创粉丝点击