当前位置:首页 » 网页前端 » 查看sh脚本内容
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

查看sh脚本内容

发布时间: 2022-08-19 02:45:50

① shell 判断脚本是否有带参数

执行“nano test.sh”创建一个新的shell脚本。

脚本test.sh的内容如下:
#!/bin/sh

name=$1

echo "the ${name} are great man!"

给新创建的test.sh的脚本赋可执行权限,命令为“chmod 755 test.sh”。

执行'./test.sh "xiao wang"'命令,可以看到自己编写脚本的结果“the xiao wang are great man!”。

"name=$1"中$1为系统提供的位置参数,$0代表程序的名称,[$1/$2/...]从1开始为传递的参数。
6
linux系统除了提供位置参数还提供内置参数,内置参数如下:
$# ----传递给程序的总的参数数目
$? ----上一个代码或者shell程序在shell中退出的情况,如果正常退出则返回0,反之为非0值。
$* ----传递给程序的所有参数组成的字符串。
$n ----表示第几个参数,$1 表示第一个参数,$2 表示第二个参数 ... $0 ----当前程序的名称
$@----以"参数1" "参数2" ... 形式保存所有参数
$$ ----本程序的(进程ID号)PID
$! ----上一个命令的PID

② linux执行sh脚本的指令有哪些

bash shell 脚本的方法有多种,现在作个小结。假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限。
方法一:切换到shell脚本所在的目录(此时,称为工作目录)执行shell脚本:

复制代码代码如下:

cd /data/shell

./hello.sh

./的意思是说在当前的工作目录下执行hello.sh。如果不加上./,bash可能会响应找到不到hello.sh的错误信息。因为目前的工作目录(/data/shell)可能不在执行程序默认的搜索路径之列,也就是说,不在环境变量PASH的内容之中。查看PATH的内容可用 echo $PASH 命令。现在的/data/shell就不在环境变量PASH中的,所以必须加上./才可执行。

方法二:以绝对路径的方式去执行bash shell脚本:

复制代码代码如下:

/data/shell/hello.sh

方法三:直接使用bash 或sh 来执行bash shell脚本:

复制代码代码如下:

cd /data/shell

bash hello.sh



复制代码代码如下:

cd /data/shell

sh hello.sh

注意,若是以方法三的方式来执行,那么,可以不必事先设定shell的执行权限,甚至都不用写shell文件中的第一行(指定bash路径)。因为方法三是将hello.sh作为参数传给sh(bash)命令来执行的。这时不是hello.sh自己来执行,而是被人家调用执行,所以不要执行权限。那么不用指定bash路径自然也好理解了啊,呵呵……。

方法四:在当前的shell环境中执行bash shell脚本:

复制代码代码如下:

cd /data/shell

. hello.sh



复制代码代码如下:

cd /data/shell

source hello.sh

前三种方法执行shell脚本时都是在当前shell(称为父shell)开启一个子shell环境,此shell脚本就在这个子shell环境中执行。shell脚本执行完后子shell环境随即关闭,然后又回到父shell中。而方法四则是在当前shell中执行的。

③ 如何查看一台服务器哪些sh脚本是在运行的

ps -ef | grep 是查看所有的正在运行的脚本的情况,

ps -ef | grep -a.sh 是查看a.sh脚本的运行情况,如果看到有进程号就证明是在运行的。

④ 如何调试shell脚本各种方法都说说。

方法一:sh -x script.sh
-x选项会将运行到的脚本内容显示在屏幕上,前面有个+号。这样就知道哪句被执行到了。对调试很有帮助。

方法二:在脚本中使用debug开关
适用于只调试部分脚本的情况。
set -x
......(要调试的代码段)
set +x
然后sh script.sh运行脚本

方法三:在脚本中添加打印
比如搞个log输出函数,专门用于打印调试相关信息。
_log()
{
if [ "$_DEBUG" = "true" ]; then
echo "调试信息"
fi
}
只要在外面控制$_DEBUG开关即可。

⑤ shell脚本查看文件是否含有内容

#!/bin/sh
DIRECTORY=$1
if [ "`ls -A $DIRECTORY`" = "" ]; then
echo "$DIRECTORY is indeed empty"
else
echo "$DIRECTORY is not empty"
fi

⑥ 怎么在网站上运行SH脚本

Subversion是一个强大的版本控制系统,特别是它能够轻松地处理库管理进程中在各个点上的数据。在进行提交后、或者进行提交前,或锁定、或解锁文件中,或者在其它情况下,你都能拥有脚本句柄数据。所有的这些都是通过hook实现的,hook是subversion库结构中的一部分。Hook 由一个库事件来触发的。例如,如果你有一个subversion库存放在/subversion/repos/packages下,那么你的hook将被存放在/subversion/repos/packages/hooks目录下。

在这个hook目录下存放着大量的临时文件。这些文件只是作为例子来存在。所以如果你想写一个脚本能在每次提交后,把subversion数据用e -mail发送给你的话,你应该拷贝post-commit.tmpl到post-commit中,把它变为可执行的,并按照你的需要去编辑它。

这些脚本能从subversion网站上获得,同时也有些其它用户提供的脚本和工具。你能在subversion.tigris.org/tools_contrib.html上浏览到许多这样的脚本。目前最感兴趣的是邮件提交的(post-commit e-mail)脚本commit-email.pl。把这个文件下载下来,并把它放在/usr/local/bin/下面,然后使它变成可执行的。同时在 hooks/post-commit脚本中,在该文件末尾增加上以下内容:

REPOS=""

REV=""

/usr/local/bin/commit-email.pl "$REPOS" "$REV" --from [email protected] -s

"SVN commit in packages" [email protected]

这个将执行的commit-e-mail.pl脚本会带有一些参数,也就是库名和你做的修订。它将按照指定的主题路线从 [email protected]网站上发送e-mail到[email protected]上,[email protected]网站上有些指定的用户或者邮件列表。

如果你想在站点上查看其它的脚本,你可以在版本控制软件库的管理器中看到许多有趣的脚本。在整个数据被提交到subversion之前,这些脚本能够做某些检查,比如,各种预提交检查脚本。

⑦ Linux中sh脚本里面的问题。

$@:表示所有脚本参数的内容
$#:表示返回所有脚本参数的个数。

示例:编写如下shell脚本,保存为test.sh
#!/bin/sh
echo "number:$#"
echo "argume:$@"
执行脚本:
./test.sh first_arg second_arg

说明:给脚本提供了两个参数,所以$#输出的结果是2,$@代表了参数的内容!