① shell 读取配置文件
比如file是哪个配置文件
a=(`awk -F'=' '{print $2}' file`)
读取后存成一个数组a
② 与shell有关的配置文件有哪些
在Ubuntu中有如下几个文件可以设置环境 变量
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第 二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在 登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默 认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
4、~/.bashrc:该 文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该 该文件被读取。
http://www.blogjava.net/jasmine214--love/archive/2010/11/25/339006.html
③ 写一个shell脚本,读取配置文件算出配置文件中是数字的和。 配置文件sum.conf 1 a 2
给你举个例子吧,下面是我写的一个读取配置参数的问题
其中 for i in `cat $V_CFG_DIR/tab_tmp2.cfg` 是读取配置文件tab_tmp2.cfg
如果你参数的名字需要通过参数来传递的话那就改下,添加一个参数并把tab_tmp2.cfg换成你添加的参数(就像参数V_DATA_DATE一样通过外部传入),另外加法求和你网络下就可以搞定了,快看看吧,有详细的注释
#############################################################
#功能:装载指定目录数据
#作者:PENGWEI
#时间:2015-11-18
#############################################################
# 数据日期参数,待传入
V_DATA_DATE=$1
#FTP完成后数据存放路径
V_DATA_DIR=/home/almusr/data/odsdata/FTP/$V_DATA_DATE
# FTP完成后生成的标志文件所在路径
V_FTP_FLAG=/home/almusr/data/etl_load/FTPOK
# 解压数据前备份数据的存放路径
V_DATA_BAK=/home/almusr/data/odsdata/odsdata_bak
# 配置文件存放路径
V_CFG_DIR=/home/almusr/cfg
#日志文件
LOGDIR=/home/almusr/log/Loaddata_log
LOGFILE=$LOGDIR/LoadData_$V_DATA_DATE.log
# 初始化系统参数
DBNAME=ALMDB
USER=almusr
PASSword=almusr
SCHEMA=ODSUSR
#如果 日志目录不存在
if [ ! -d "${LOGDIR}" ]
then
#建立目录
mkdir -p "${LOGDIR}"
fi
#\n --回车
echo "\n日志文件[$LOGFILE]\n"
#日志函数
recordLog()
{
echo `date +"%Y-%m-%d %T"`": $1" | tee -a $LOGFILE
return 0
}
#判断参数个数
if [ $# -ne 1 ]
then
recordLog "Usage:$0 directory"
exit 1
fi
# $?表示上述命令执行后返回的状态(执行成功返回0 执行不成功返回非0)
if [ $? -ne 0 ]
then
recordLog "cd $V_DATA_DIR error !"
exit 1
fi
#连接数据库
db2 connect to $DBNAME user $USER using $PASSWORD
if [ $? -ne 0 ]
then
recordLog "connect[$DBNAME] fail!"
exit 1
fi
#加载数据
RETVAL=0
for i in `cat $V_CFG_DIR/tab_tmp2.cfg`
do
#读取表名并输出
TABLE_NAME=`echo $i | awk -F "," '{print $1}'`
#读取文件后缀名并输出
echo " the table_name is $TABLE_NAME"
#拼接文件名
FILENAME=${TABLE_NAME}.del
#解压缩 临时变量
FILENAME_TMP=$FILENAME.gz
echo "the FILENAME is $FILENAME"
recordLog "the FILENAME $FILENAME!"
# 第一步:对压缩文件备份,先扫描FTP完成标志,如果存在就说明FTP过程已结束,开始备份,否则等待继续扫描
#进去FTP完成标志所在目录
cd $V_FTP_FLAG
#扫描FTP完成标志
if [[ ! -e "${V_DATA_DATE}.ok" ]]; then
sleep 1800
else
cd $V_DATA_BAK
#备份文件
cp -r $V_DATA_DIR ${V_DATA_DATE}_bak
cd ${V_DATA_DATE}_bak
rm -rf ${V_DATA_DATE}
fi
recordLog "Copy data was finished"
# 第二步:删除30天前的备份数据
v_BakFileDate=`date -d "- 30 day ${V_DATA_DATE}" +%Y%m%d`
cd $V_DATA_BAK
rm -rf ${v_BakFileDate}_bak
recordLog "Removed the bak_data of 30 days before!"
# 第三步:对文件进行解压
cd $V_DATA_DIR
if [ -f $FILENAME_TMP ]
then
echo "$FILENAME_TMP must gunzip"
#解压文件
gunzip $FILENAME_TMP
echo "$FILENAME_TMP ,gunzip success"
else
echo "$FILENAME exist,next step"
recordLog "$FILENAME exist,next step!"
fi
# 第四步:数据加载
if [ -f $FILENAME ]
then
# CMD="db2 \"load from $FILENAME of del MODIFIED BY coldel0x23 usedefaults keepblanks decpt. replace into ODSUSR.$TABLE_NAME data buffer 10000\" > $LOGDIR/$TABLE_NAME_XX.log 2>&1"
CMD="db2 \"load from $FILENAME of del replace into ODSUSR.$TABLE_NAME data buffer 10000\" > $LOGDIR/$TABLE_NAME.log 2>&1"
echo "$FILENAME is loading"
eval $CMD
fi
echo "load data is over"
recordLog "load data is over"
# 第五步:判断加载是否正确
#判断是否正常加载
read_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows read" | awk -F'=' '{print $2}'`
skip_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows skipped" | awk -F'=' '{print $2}'`
load_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows loaded" | awk -F'=' '{print $2}'`
reject_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows rejected" | awk -F'=' '{print $2}'`
delete_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows deleted" | awk -F'=' '{print $2}'`
commit_num=`cat $LOGDIR/$TABLE_NAME.log | grep "Number of rows committed" | awk -F'=' '{print $2}'`
echo "$read_num,$skip_num,$load_num,$reject_num,$delete_num,$commit_num"
#条件判断加载是否正确
if [[ "$read_num" -eq "$load_num" && "$load_num" -eq "$commit_num" ]]
then
echo "Data loading is perfect!"
else
cat $LOGDIR/$TABLE_NAME.log
recordLog "loading [$V_DATA_DIR/$TABLE_NAME] error!"
RETVAL=1
continue
fi
done
db2 connect reset >/dev/null 2>&1
if [ $RETVAL != 0 ]
then
recordLog "load data directory [$V_DATA_DIR] error!!!"
else
recordLog "load data directory [$V_DATA_DIR] successful!!!"
fi
# 第五步:完成退出
exit 0
你把这个问题看懂了估计你那个就没问题了
有什么问题再交流
④ xshell如何备份导出配置\xshell怎么导入配置
xshell如何备份导出配置
1
如图如果是新建,或者之前连接过的会话设置会自动记录到xshell会话里面
2
导出\备份xshell配置
点击xhsell4 文件菜单--- 导出功能选项
3
然后出现导出会话对话框,依次选择需要保存的目标文件,建议勾选 导出密码
4
导出会话之后,如图结果显示正常的文件才能使用
5
导出的xshell4配置文件都是如图,xts的文件名。
6
由于是特有的格式文件,使用记事本文件打开会是加密的无法识别
END
xshell怎么导入配置
1
对于新安装的xhsell4软件是没有配置的,如何把之前备份的配置导入,找到 文件--导入
2
浏览到之前的会话文件,如图 默认的配置选项是相同会话名的重命名
3
然后接着显示导入的账号信息,比如xshell会话记录有34个
4
导入成功之后,点击完成结束。你会发现之前备份的会话都进来了
5
特别提醒一下
如果对于本身就有配置的xshell4导入之前的配置,如果是相同内容建议勾选【覆盖】
⑤ linux下环境变量配置文件
环境变量配置的两个方法:
在/etc/profile里设置系统环境变量时,路径末尾不能以"/"结尾,否则将导致整个PATH变量出错
各个配置文件作用
家目录中配置文件里面默认有shell来判断如果父配置文件不存在才读取此文件
/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取.
~/.bash_logout: 当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
⑥ shell鑴氭湰璇诲彇閰嶇疆鏂囦欢鍙傛暟
1銆 璇诲彇閰嶇疆鏂囦欢鏃讹紝灏嗘敞閲婄#鏍囪扮殑琛屽拰绌鸿屽叏閮ㄨ繃婊 sed -E '/^#.*|^ *$/d' $env_file 銆
2銆 鍖归厤鎸囧畾鍙傛暟鐩哥︾殑琛屽苟鎴鍙栧瑰簲鐨勫 awk -F "${param}=" "/${param}=/{print \$2}" 銆
3銆 鑾峰緱鐨勭粨鏋滃彲鑳芥湁澶氫釜锛屽彇鏈鍚庝竴涓鍊 tail -n1 銆
4銆佽繖3姝ラ兘鐢 | 绠¢亾绗﹁繛鎺ワ紝鍏朵綔鐢ㄦ槸灏嗗綋鍓嶇殑缁撴灉浣滀负涓嬩竴鏉″懡浠ょ殑杈撳叆锛岃繛缁澶勭悊浠ヨ揪鍒拌幏鍙栧弬鏁扮殑鏈缁堢洰鐨勩
⑦ linux鐨.sh鏂囦欢
Linux绯荤粺涓嬪備綍杩愯.sh鏂囦欢锛
1.濡傛灉filename.sh鏂囦欢鏈夋墽琛屾潈闄./filename.sh2.濡傛灉filename.sh鏂囦欢娌℃湁鎵ц屾潈闄恠hfilename.sh
鎵╁睍鍚嶄负sh鏄浠涔堢紪璇戝櫒缂栧啓鐨勪唬鐮侊紵
鏄痩inux/unix涓嬬殑shell鑴氭湰鏂囦欢锛屾槸绾鏂囨湰鏂囦欢銆
鐢ㄤ换浣曟枃鏈缂栬緫鍣ㄩ兘鍙浠ユ墦寮銆linux鍛戒护涓鐨剆h鏄浠涔堟剰鎬濓紵
Bourneshell(sh)鍙浠ヨ存槸涓涓骞冲彴.鐩存帴閫氬悜鍐呮牳鐨.浣犺緭鍏SH绛変簬鏀瑰彉浜嗕綘鐨剆helllinux榛樿ょ殑shell鏄痓ash浣犳敼鎴愪簡,bourneshell浣犺緭浜哹ash灏辨敼鍥炴潵鍟.$绗︿唬琛ㄦ櫘閫氱敤鎴.
linuxsh鏀句粈涔堜綅缃锛
杩欐槸shell鑴氭湰鏂囦欢锛岃繖涓鏄娌℃湁鍥哄畾鐨勭洰褰曠殑锛屼絾鏄鍙浠ヤ娇鐢ㄦ煡鎵惧懡浠ゆ壘鍒扮浉搴旂殑鏂囦欢鐨勶紝鍙浠ヤ娇鐢╨ocate鎴栬協ind鍛戒护鏌ユ壘鏂囦欢锛
linuxshell璇诲彇涓涓閰嶇疆鏂囦欢骞惰幏鍙栧叾涓鐨勫叏閮ㄥ唴瀹癸紝鎬ワ紵
涓嬮潰鏄璇诲彇閰嶇疆鏂囦欢锛屼綔涓哄彉閲忔樉绀哄嚭鏉ワ紝瀹炰緥濡備笅锛$catboot.inipath='/data/source'username='myuser'password='mypassword'$cattest.sh#!/bin/sheval`cat./boot.ini`echo"$username"echo"$path"echo"$password"$./test.shmyuser/data/sourcemypassword