tree
它在显示文件之间的目录关系方面做的很好
commands
├── a.js
├── b.js
├── c.js
├── copy-apps
│ └── fe-apps
│ └── a.js
├── fe-apps
│ └── a.js
├── test.log
└── xxx
└── yyy
大约 5 分钟
它在显示文件之间的目录关系方面做的很好
commands
├── a.js
├── b.js
├── c.js
├── copy-apps
│ └── fe-apps
│ └── a.js
├── fe-apps
│ └── a.js
├── test.log
└── xxx
└── yyy
关于shell中的tree命令,它可以以树形结构显示指定目录下的文件和子目录
tree命令的基本语法结构如下
tree [选项] [目录]
# 判断变量
read -p "input a word :" word
if [ ! -n "$word" ] ;then
echo "you have not input a word!"
else
echo "the word you input is $word"
fi
判断输入参数
#!/bin/bash
if [ ! -n "$1" ] ;then
echo "you have not input a word!"
else
echo "the word you input is $1"
fi
以下未验证,转自http://blog.csdn.net/lllxy/article/details/3255554
2. 直接通过变量判断
如下所示:得到的结果为: IS NULL
#!/bin/sh
para1=
if [ ! $para1 ]; then
echo "IS NULL"
else
echo "NOT NULL"
fi
3. 使用test判断
得到的结果就是: dmin is not set!
#!/bin/sh
dmin=
if test -z "$dmin"
then
echo "dmin is not set!"
else
echo "dmin is set !"
fi
4. 使用""判断
#!/bin/sh
dmin=
if [ "$dmin" = "" ]
then
echo "dmin is not set!"
else
echo "dmin is set !"
fi
这个问题是由于权限的问题,需要文件设置权限:
chmod 600 *
// demo
chmod 600 xz
#!/bin/sh
myFile="./output.tar.gz"
passwd="M562vaxTKvmsa4Pu"
set -e
# if [ ! -d "$myFile" ]; then
# echo '存在产出,准备删除'
# echo '===删除中==='
# rm -rf $myFile
# echo '已删除产出'
# fi
# echo $passwd
# echo '下载完毕'
/usr/bin/expect<<-EOF
# set timeout 5
spawn scp -p 8888 output.tar.gz root@10.13.5.69:/home/kingsoft/output
expect {
"*password:" { send "$passwd\r" }
}
expect "*#"
spawn ssh root@10.13.5.69
expect {
"*password:" { send "$passwd\r" }
}
expect "*#"
send "cd /home/kingsoft/output/\r"
expect "*#"
send "pwd \r "
expect "*#"
send "bash front_deploy.sh $1 \r "
expect "*#"
send "exit\r"
interact
expect eof
EOF
shell实现获取当前实现,并进行格式转换的方法:
原格式输出
2018年09月30日 星期日 15:88:15 CST
time1=${date}
echo $time1
时间串输出
20180930155515
#!bin/bash
time2=$(date "+%Y%m%d%H%M%S")
echo $time2
2018-09-30 15:55:15
#!bin/bash
time3=$(date "+%Y-%m-%d %H:%M:%S")
echo $time3
2018.09.30
#!bin/bash
time4=$(date "+%Y.%m.%d")
echo $time4
# expect超过超时时间没有检测到要找的字符串,则不执行
set timeout 30
# 获取传入的三个参数
set host [lindex $argv 0]
set code [lindex $argv 1]
set passwd [lindex $argv 2]
set date [exec date "+%Y_%m_%d"]
# 运行ssh连接命令
spawn ssh $host
# 自动传入验证码&密码
expect {
"Verification code:" { send "$code\n"; exp_continue }
"Password:": { send "$passwd\n"}
}
# 退出expect返回终端,可以继续输入,否则将一直在expect不能退出到终端
interact