shell命令简单学习

1、本地变量to环境变量:
$ VARNAME=value
$ export VARNAME
$ unset VARNAME
注:shell变量不需要明确定义类型,都是字符串


2、命令代换:is ` not '
$ DATE=`data` 
$ DATE=$(data)
$ echo $DATE


3、算术代换:
$ VAR=45
$ echo $(($VAR+3))


4、条件测试:
$ VAR=2
$ test $VAR -gt 1
$ echo $?
0
$ test $VAR -gt 3
$ echo $?
1
$ [ $VAR -gt 3 ]
$ echo $?
1
注:0表示大于,1表示小于


**if/then/elif/else/fi
if [ -f ~/.bashrc ]; then
    . ~/.bashrc
fi




5、脚本命令行参数:
$1:第一个参数
$*:所有参数


6、for/do/done:
#! /bin/sh
for FRUIT in apple banana pear; do
  echo "I like $FRUIT"
done


$ for FILENAME in chap?; do mv $FILENAME $FILENAME~; done
注:将chap0、chap1等改为chap0~、chap1~,so cool!


7、while/do/done:
#! /bin/sh
echo "Enter password:"
read TRY
while [ "$TRY" != "secret" ]; do
  echo "Sorry, try again"
  read TRY
done
注:验证密码的脚本


8、位置参数和特殊变量:
$0 相当于argv[0]
$1、$2: 相当于argv[1]、argv[2]
$#: 相当于argc-1
$@、$*: 相当于"$1" "$2" ...
$?: 上条命令的Exit Status
$$: 当前Shell的进程号


9、函数:
#! /bin/sh


is_directory()
{
  DIR_NAME=$1
  if [ ! -d $DIR_NAME ]; then
    return 1
  else
    return 0
  fi
}


for DIR in "$@"; do
  if is_directory "$DIR"
  then :
  else
    echo "$DIR doesn't exist. Creating it now..."
    mkdir $DIR > /dev/null 2>&1
    if [ $? -ne 0 ]; then
      echo "Cannot create directory $DIR"
      exit 1
    fi
  fi
done


注:创建多个目录,目录名通过命令行参数传入


eg:按行读取文件

#!/bin/bash

cat apklist.txt | while read line

do

echo $line

done

你可能感兴趣的:(shell命令简单学习)