初识shell

分割线

在shell脚本中,通过设置IFS来确定分割线。例如:

#!/bin/bash

IFS=:
for val in $PATH
do
	echo "$val:"
	for file in $val/*
	do
		if [ -x $file ]
		then 
			echo "   $file"
		fi
	done
done

输入参数

在使用0-9的参数通过$0-$9表示,而10之后的数据则需要通过类似${10}格式。

#!/bin/bash

if [ -n "$1" ]
then
	echo "has data"
else
	echo "no data"
fi

特殊变量$#含有脚本运行时携带的命令行参数的个数

#!/bin/bash

echo "$#"

使用${!#}来获取最后一个参数

#!/bin/bash

echo "${!#}"

$*变量会将命令行上提供的所有参数当作一个单词保存。
$@变量会将命令行上提供的所有参数当作同一字符串中的多个独立的单词。

#!/bin/bash

for val in "$*"
do
	echo "$val"
done

echo "next"


for val in "$@"
do
	echo "$val"
done

在这里插入图片描述
shift命令会根据它们的相对位置来移动命令行参数.在使用shift命令时,默认情况下它会将每个参数变量向左移动一个位置。所以,变量$3的值会移到$2中,变量$2的值会移到$1中,而变量$1的值则会被删除(变量$0的值,也就是程序名,不会改变)

#!/bin/bash

count=1
while [ -n "$1" ]
do
 echo "Parameter #$count = $1"
 count=$[ $count + 1 ]
 shift
done 

在这里插入图片描述

#!/bin/bash

while [ -n "$1" ] 
do
	case "$1" in
		-a) echo "Found the -a option";;
		-b) echo "Found the -b option";;
		--)shift
		   break;;
		*)echo "$1 is not an option";;
	esac
	shift
done
#
count=1
for param in $@
do
	echo "Parameter #$count:$param"
	count=$[ $count + 1 ]
done

read命令获取用户输入

read将读取的内容存储在变量中

#!/bin/bash

echo -n "Enter you name:"
read name
echo "$name welcame"

可以通过q来对需要的内容进行解释

#!/bin/bash

read -p "Enter you name:" name
echo "$name welcame"

通过t来限制输入时间

#!/bin/bash

if read -t 5 -p "Enter you name:" name
then
	echo "$name welcame"
else
	echo 
	echo "Sorry slow"
fi

通过s来实现隐形输入

#!/bin/bash

read -s -p "Enter you name:" name
echo
echo "$name welcame"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值