shell脚本目录
① Shell脚本判断是文件还是目录怎么写
#!/bin/bash
if[-d$1]
then
echo"$1isadirectory."
exit
elif[-f$1]
then
echo-n"$1isafile,"
if[-L$1]
then
echo"anditisalsoasymboliclink."
A=`ls-L$1`
if[-e$A]
then
echo"Symboliclinkexist."
else
echo"Symboliclinknotexist."
fi
exit
else
echo"butitisnotasymboliclink."
exit
fi
fi
② 编写Shell脚本文件,在当前目录下建立100个目录,并给出执行该文件的步骤
用bash不用写脚本,一行命令就成
printf 'user%01d\n' {1..100} | xargs mkdir
nc10@your-5554c55be4 ~
$ cd tmp
nc10@your-5554c55be4 ~/tmp
$ ls
nc10@your-5554c55be4 ~/tmp
$ pwd
/home/nc10/tmp
nc10@your-5554c55be4 ~/tmp
$ ls
nc10@your-5554c55be4 ~/tmp
$ printf 'user%01d\n' {1..100} | xargs mkdir
nc10@your-5554c55be4 ~/tmp
$ ls
user1/ user20/ user32/ user44/ user56/ user68/ user8/ user91/
user10/ user21/ user33/ user45/ user57/ user69/ user80/ user92/
user100/ user22/ user34/ user46/ user58/ user7/ user81/ user93/
user11/ user23/ user35/ user47/ user59/ user70/ user82/ user94/
user12/ user24/ user36/ user48/ user6/ user71/ user83/ user95/
user13/ user25/ user37/ user49/ user60/ user72/ user84/ user96/
user14/ user26/ user38/ user5/ user61/ user73/ user85/ user97/
user15/ user27/ user39/ user50/ user62/ user74/ user86/ user98/
user16/ user28/ user4/ user51/ user63/ user75/ user87/ user99/
user17/ user29/ user40/ user52/ user64/ user76/ user88/
user18/ user3/ user41/ user53/ user65/ user77/ user89/
user19/ user30/ user42/ user54/ user66/ user78/ user9/
user2/ user31/ user43/ user55/ user67/ user79/ user90/
nc10@your-5554c55be4 ~/tmp
$
或者用seq
mkdir $(seq -f 'user%01g' 1 100)
nc10@your-5554c55be4 ~/tmp
$ ls
nc10@your-5554c55be4 ~/tmp
$ mkdir $(seq -f 'user%01g' 1 100)
nc10@your-5554c55be4 ~/tmp
$ ls
user1/ user20/ user32/ user44/ user56/ user68/ user8/ user91/
user10/ user21/ user33/ user45/ user57/ user69/ user80/ user92/
user100/ user22/ user34/ user46/ user58/ user7/ user81/ user93/
user11/ user23/ user35/ user47/ user59/ user70/ user82/ user94/
user12/ user24/ user36/ user48/ user6/ user71/ user83/ user95/
user13/ user25/ user37/ user49/ user60/ user72/ user84/ user96/
user14/ user26/ user38/ user5/ user61/ user73/ user85/ user97/
user15/ user27/ user39/ user50/ user62/ user74/ user86/ user98/
user16/ user28/ user4/ user51/ user63/ user75/ user87/ user99/
user17/ user29/ user40/ user52/ user64/ user76/ user88/
user18/ user3/ user41/ user53/ user65/ user77/ user89/
user19/ user30/ user42/ user54/ user66/ user78/ user9/
user2/ user31/ user43/ user55/ user67/ user79/ user90/
nc10@your-5554c55be4 ~/tmp
$
③ shell脚本 如何自动执行子目录下的执行文件
../Temp应该就是/Temp吧,假设AAAA的绝对路径/path/to/AAAA
方法1:
find /A -maxdepth 1 -mindepth 1 -type d -exec cp -r {} /Temp \;
find /Temp -maxdepth 1 -mindepth 1 -type d -exec cp /path/to/AAAA \;
find /Temp -maxdepth 2 -mindepth 2 -type f -name "AAAA" -exec {} \;
方法2:
for dir in /AAA
do
if [ -d $dir ]
then
cp -r $dir /Temp
cp /path/to/AAAA /Temp/$(basename $dir)
/Temp/$(basename $dir)/AAAA
fi
done
④ 如何目录A下执行另一目录(目录B)下的shell脚本test
可能知道怎么回事了。
估计B脚本中添加了引用路径的当前变量。
比如:B脚本中有一变量
Cur_Dir=$(pwd)
这样执行过程如果不是当前目录执行的,就会引用A目录下的路径,自然找不到指定的文件。
知道原因后,即可在B下执行,或者变量B中的路径为完整路径
⑤ shell脚本路径问题
关于路径,我的建议是用完整路径,不要用./ ../ 之类的路径。
##################################################
#!/bin/bash
#cat a.properties
FILE=/home/user/A/D/a.properties
read -p "enter your want to look:" ANSWER
if [ -n "$ANSWER ]
then
XX=`cat $FILE |grep $ANSWER`
echo "$XX"
else
echo "enter error!"
fi
##################################################
这个脚本的意思是,让你输入你需要查询的内容,并且把内容显示在屏幕上给你看,如果你输入的内容是空的,就不给查询,并且抛出enter error的错误提示。
⑥ 怎么让shell脚本获得自己所在目录名
在脚本中加两行:
x=`pwd`
print x
PS:注意不是单引号,是反引号
⑦ 写shell脚本:将linux下子目录及子目录文件复制到定点目录下,使用readline命令
你这不就是把目录A目录下的内容复制到B目录下的问题吗?有必要那么复杂?
cp-r/app/tlinx2/openapi/*/app/update/openapi/
⑧ shell脚本实现统计目录下(包括子目录)所有文件的个数
在shell终端中输入下列命令:
#在当前目录生成脚本文件countfile
cat>countfile<<SCRIPT
#!/bin/sh
find"$@"-typef|
wc-l
SCRIPT
#为脚本添加权限
chmod+xcountfile
#执行用例
./countfile~
⑨ shell脚本 -d 是目录文件,那么-e,-f分别是什么还有"! -e"这又是什么意思呢
-e表示如果filename存在,则为真。
-f表示如果filename为常规文件,则为真。
!-e表示取非,如果filename存在,则为假。
(9)shell脚本目录扩展阅读:
shell和shell脚本的区别:
确切一点说,Shell就是一个命令行解释器,它的作用就是遵循一定的语法将输入的命令加以解释并传给系统。它为用户提供了一个向Linux发送请求以便运行程序的接口系统级程序,用户可以用Shell来启动、挂起、停止甚至是编写一些程序。
Shell本身是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言(就是你所说的shell脚本)。
作为命令语言,它互动式地解释和执行用户输入的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。
它虽然不是 Linux系统内核的一部分,但它调用了系统内核的大部分功能来执行程序、创建文档并以并行的方式协调各个程序的运行。