查找字符 "i或s" 的位置:
string="runoob is a great company" echo `expr index "$string" is` # 输出
数组
bash仅支持一维数组,并不限制数组大小。可以依次定义,用空格隔开;也可以自己设置下标定义,下标可以是变量等。
获取数组的长度
获取数组长度的方法与获取字符串长度的方法相同,例如:
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
#取得数组单个元素的长度
lengthn=${#array_name[n]}
# 也可以出现在特定的参数替换结构中或者是数字常量表达式中.
echo "The # here does not begin a comment."
echo 'The # here does not begin a comment.'
echo The \# here does not begin a comment.
echo The # 这里开始一个注释
echo ${PATH#*:} # 参数替换,不是一个注释
echo $(( 2#101011 )) # 数制转换,不是一个注释
case
case "$variable" in
abc) echo "\$variable = abc" ;;
xyz) echo "\$variable = xyz" ;;
esac
.
. 命令等价于source命令(见Example 11-20).这是一个bash的内建命令.(source 在ksh中不可直接用)
. 作为文件名的一部分.如果作为文件名的前缀的话,那么这个文件将成为隐藏文件.将不被ls命令列出.
. 命令经常作为一个文件移动命令的目的地. bash$ cp /home/bozo/current_work/junk/* .
. 字符匹配,这是作为正则表达是的一部分,用来匹配任何的单个字符.
" 部分引用."STRING"阻止了一部分特殊字符.
' 全引用. 'STRING' 阻止了全部特殊字符.
反引号的作用就是将反引号内的Linux命令先执行,然后将执行结果赋予变量。反引号与$()都是命令替换。
单引号属于强引用,它会忽略所有被引起来的字符的特殊处理,被引用起来的字符会被原封不动的使用,唯一需要注意的点是不允许引用自身
1:
# echo '$PWD'
$PWD
# echo "$PWD"
/root
2:
# echo '$(echo hello world)'
$(echo hello world)
# echo "$(echo hello world)"
hello world
# echo '`echo hello world`'
`echo hello world`
# echo "`echo hello world`"
hello world
3:当需要使用字符($ ` " \)时必须进行转义,也就是在前面加\ ;
#echo '$ ` " \'$ ` " \[root@localhost ~]
# echo "\$ \` \" \\"$ ` " \
linux中反引号`与$()的区别
反引号中:若要使用转自字符需要\\ $()中:若要使用转义字符用\
, 逗号链接了一系列的算术操作,虽然里边所有的内容都被运行了,但只有最后一项被返回.
网友评论