shell script范例

程序来自《鸟哥的linux私房菜》

#/bin/bash
#Program:
#   Program create three files,which named by user's input
#       and date command
#History
#2011/02/01 ly First release
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH
echo -e "I will use 'touch' command to create 3 files. "
read -p "Please input your filename :" fileuser
filename=${fileuser:-"filename"}
date1=$ (date --date='2 days ago' +%Y%m%d)
date2=$ (date --date='1 days ago' +%Y%m%d)
date3=$ (date +%Y%m%d)
file1=${filename}${date1}
file2=${filename}${date2}
file3=${filename}${date3}
touch "$file1"
touch "$file2"
touch "$file3"

 

 

自己犯的错误:

1、date1=$ (date --date='2 days ago' +%Y%m%d)

 

     第一个:--date之间不能有空格,不能写成-- date

      第二个:' +%处,此处的单引号和加号之间必须要有空格,加号和百分号之间没有空格。

2、read -p "Please input your filename :" fileuser

       在此处双引号与fileuser变量之间应该有一个空格,正确的格式应该是:read -p "Please input your filename :"   fileuser

      此句的意思意思表示从键盘输入中读取一个值赋给变量fileuser

 

      filename=${fileuser:-"filename"}#若变量fileuser的值不为null就把输入的值赋给filename,若是null就将字符串filename赋值给变量filename。为变量设置预设值的意思,防止用户多次输入回车键而给文件错误命名.
     PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
#PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻
用以下命令可以设置PATH的值:

  

    直接用export命令

在PATH中加入/data/test/hellow.sh脚本,使该脚本能在其他目录下执行。
[root@localhost /]# cd /data/test
[root@localhost test]# ll
总用量 4
-rwx------  1 root root 32 10月 25 13:02 hellow.sh
[root@localhost test]# echo $PATH       #显示$PATH变量
/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin
[root@localhost test]# cd /
[root@localhost /]# export PATH=/data/test:$PATH      #在$PATH中加入脚本路径
[root@localhost /]# export|grep test      #查看$PATH
declare -x OLDPWD="/data/test"
declare -x PATH="/data/test:/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin:/root/bin"
 
修改profile文件
[root@localhost /]# vi /etc/profile
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC    #加入
 
修改.bash文件
[root@localhost /]# vi/root/.bashrc
# .bashrc

# User specific aliases and functions

alias rm=rm -i
alias cp=cp -i
alias mv=mv -i

# Source global definitions
if [ -f /etc/bashrc ]; then
 . /etc/bashrc
fi

export PATH="$PATH:/data/test/"

 

 

 

此处资料的原文来自: http://www.online990.com/htm/20091025/79.htm

 

 

script执行方式的区别

    1、利用直接执行的方式来执行script

    直接命令执行或者利用bash(或sh)来执行脚本时,该script都会用一个新的bash环境来执行脚本内的命令。当子进程完成后,子进程内的各项变量或操作将会结束而不会传回到父进程中

    2、利用source来执行脚本:在父进程中执行

 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值