2018年第一次笔记 LINUX的shell入门

Shell:内部核心与外部使用者联系的介质!

Shell:解释型语言

Shell Script <==> DOS 批处理

#!/bin/sh 开头路径 
    #!/bin/sh
    date
    pwd

Shell 一般要先给可执行权限,或使用内部命令sourcesh 执行

Shell 变量

常用的系统变量及其含义

$#: 保存程序命令数
$0: 当前程序名
$*: 以("$1 $2…")形式保存所有输入的命令行参数
$@: 以("$1" "$2"…)形式保存所有输入的命令行参数
$n:$n为命令行的第n个参数

例子:

echo "the No. of parameter is $#"; 
echo "the script name is $0";
echo "the parameters in the script are $*";
echo "the parameters in the script are $3";

注意:
1. 参数中间一定要有空格
2. Shell参数和C语言参数的一个区别是shell不把文件名作为参数,而c语言参数把文件名当作第一个参数

Shell的环境变量

Shell环境变量时所有Shell程序都会接受的参数。Shell程序运行时,都会接收一组变量,这组变量就是环境变量,常用的Shell变量有:

PATH:Shell寻找程序或命令的目录
HOME:当前用户主目录的完全路径
HISTSIZE:历史记录数
LOGNAME:当前用户的登陆名
HOSTNAME:主机名称
Shell:Shell路径名
LANGUGE:语言相关的环境变量,多语言可以修改此环境变量
MAIL:当前用户的邮件存放目录
PWD:当前工作目录的绝对路径


 显示变量  #echo $HOME
 设置变量  #expert WELCOME = "HE"  //只改变当前的环境变量
 查看所有变量  #env
 查看本地变量  #set
 删除变量  #unset
 查询变量  #env|grep WELCOME  //管道的使用  或者  #set|grep WELCOME

用户变量

几个特殊功能

变量扩张

${var}

字符串截断功能

分为左截断和右截断

* 任意n个字符 ? 任意一个字符
//左截断的例子 
$ MYVAR=foodforthought.jpg
$ echo ${MYVAR##*fo}  //##最长匹配
rthought.jpg
$ echo ${MYVAR#*fo}  //#最短匹配
odforthought.jpg
//右截断的例子
$ MYVAR="chickensoup.tar.gz"
$ echo ${MYVAR%%.*}  //最长截断
chickensoup
$ echo ${MYVAR%.*}  //最短截断
chickensoup.tar

流程控制

if语句

if [-e ./test.sh]  //这里条件的写法其实更难!!!
then
echo "..........."
else
echo ",,,,,,,,,,,"
fi

case语句

#!/bin/sh
Test=test.tar.gz
case "${Test##*.}"in
gz)
    tar -xzvf $Test ;; 
bz2)
    tar -xjvf $Test ;;
*)
    echo "formar error" ;;
esac

循环语句

#!/bin/sh

Mynum=0

while [ $Mynum -ne 10 ]
do
    echo $Mynum
    Mynum=$(($Mynum + 1))
done
#!/bin/sh

for x in 1 2 3
do
    echo $x
done


#!/bin/sh

for x in ./t*
do
    echo $x
done
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值