Shell expansion

One of annoying things about Linux shell is the strange shell syntax.

 

Bash brace expansion

==================


The following code cp menu.lst tom menu.lst.bak:


cp /boot/grub/menu.lst{,.bak}

 

 

/boot/grub/menu.lst{,.bak} will be expanded to the orignal pathname and a new pathname suffixed with .bak. Run "echo /boot/grub/menu.lst{,.bak}" to see the effect.

 

 

For a detailed explanation, refer to
http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion.

 

Tilde Expansion

=============

The following code sets HADOOP_CONF_DIR to $HADOOP_HOME/conf if HADOOP_CONF_DIR has not been set.

 

HADOOP_CONF_DIR="${HADOOP_CONF_DIR:-$HADOOP_HOME/conf}"

 

It is the ${parameter:−word} pattern.

 

The following code uses ${parameter#word} and ${parameter%word} patterns.

 

#!/bin/bash

for i in $(cut -f 1,3 -d: /etc/passwd) ; do
    echo "${i#*:}" "=" "${i%:*}"
done

 

 

Refer to 

http://www.gnu.org/software/bash/manual/bashref.html#Shell-Parameter-Expansion

 

Arrays

======

array=(one two three four)

for i in "${array[@]}"; do
echo $i
done

echo "${array[*]}"
echo "${array[@]}"
echo "${array[0]}"
echo "${#array[0]}"
echo "${#array[@]}"
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值