导航:首页 > 程序命令 > sh中执行命令

sh中执行命令

发布时间:2023-04-09 17:04:34

linux上.sh文件中的命令为什么执行不了

linux下所有程序必须加上执行祥汪权限才能执行,而不是像windows一样根据扩展名茄宴团确定能否执行
chmod +x .sh文件
加上 x权颤橘限方能执行

❷ shell中怎么批量执行命令。

将要执行的命令全部写入一个文件(俗称脚本文件),然后执行脚本文件即可。
注意:假设脚本文件名为test.sh(后缀不必要,只是为了清楚表明是脚本文件),那么在执行脚本文件前,要用 chmod +x test.sh 赋予其可执行权限。然后才能像执行命令那样执行脚本。
--------------------
多台服务器跟一台服务器的操作类似,通信协议和操作方式都是相同的,只是IP地址不同。
所以只要写一个循环,
for ip in $ip1 $ip2 $ip3
do
使用 $ip 做服务器操作
done

❸ setenv.sh怎么执行

setenv.sh的执行方式上通过shell执行。shell命拿者令可以事先写入一个文件中,使用时shell读取文件中的命令逐条解释执行,这种文件,被称为脚本。
执行脚本的方法与执行其他程序一样,如: ​./setenv.sh #setenv.sh是当前知敏兆目录下的一个脚本
​以这种方法执行脚本时,其中的命令是在一个子shell中执行的。子shell继承了父shell的环境变量,但无法修改他们,或者说所做的修改仅对子shell有效。
​如果要使用脚本来修改环境变量,则必须让脚本在当前shell中执行,这一点可以用以下命令实现:
​source setenv.sh #读入setenv.sh文件中的搭租命令,在当前shell中执行

❹ 如何在shell脚本中执行cd命令

可以使用eval命令。eval命令,如同熟悉的其他脚本语言,会将它的参数做为命令执行。eval命令将会首先扫描命令行进行所有的替换,然后再执行命令。该命令使用于那些一次扫描轿陆无法实裂帆败现其功能的变量。该命令对变量进行两次扫描。这些需要进行两次扫描的变量有时候被称为复杂变量。命令格式:eval [参数]
补充说明:eval可读取一连串的参数,然后再依参数本身的特性来执行。肆颤参数不限数目,彼此之间用分号分开。

❺ 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中执行的。

❻ linux 命令中的sh是什么意思

1、sh是linux中运行shell的命令,是shell的解释器,shell脚本是linux中壳层与命令行界面,用户可以在shell脚本输入命令来执行各种各样的任务。

要运行shell脚本,首选需要给shell脚本权限,这里里以hello.sh文件为例,首先需要按下“crtl+shift+T”打开终端窗口:

❼ linux中.sh脚本文件中命令的执行顺序

每条命令后如果不加&的话就是依次一行一行的顺序执行,只有前面一行执行完成后再执行下一行,如果希望多个命令在一个shell内执行可在一行写入多条命令,用&&符号间隔

❽ shell脚本中的 exec 命令

  exec执行命令时,不会启用新的shell进程。
  source和 .也不会启用新的shell进程,在当前shell中执行,设定的局部变量在执行完命令后仍然有效。
  bash或sh执行时,会另起一个子shell进程,其继承父shell进程的环境变量,其子shell进程的变量执行完后不影响父shell进程。
  exec是用被执行的命令行替换掉当前的shell进程,且exec命令后的其他命令将不再执行。
  例如在当前shell中执行 exec ls 表示执行ls这条命令来替换当前的shell ,即为执行完后会退出当前shell。
  为了避免父shell被退出,一般将exec命令放到一个子shell脚本中,在父sehll中调用这个子shell脚本,调用处可以用bash xx.sh(xx.sh为存放exec命令的脚本),这样会为xx.sh建立一个子shell去执行,当执行exec后该子shell进程就被替换成相应的exec的命令。

  其中有一个例外:当exec命令对文件描述符操作的时候,就不会替换shell,而是操作完成后还会继续执行后面的命令!
文件描述符
shell中描述符一共有12个
0 代表标准输入
1 代表标准输出
2 错误输出
其他 3-9 都是空白描述符

其含义是: 复制标准输出到3 ,错误输出到 4 ,把 3 4 保存在bash.log 这个文件中。

其含义是:将bash.sh脚本执行的标准输出和错误输出追加重定向到 bash.log
如果exec 跟的是其他命令,则其他命令结束后,本shell也随之停止

可以看到随着 echo " hello oracle" 这条指令运行完本 整个脚本执行完毕,后面的 echo " hello db2" 没有执行!

二、Linux shell 脚本中, $@ 和 $@ 分别是什么意思?

$@ 表示所有脚本参数的内容

$# 表示返回所有脚本参数的个数

示例:编写如下shell脚本,保存为test.sh

说明:给脚本提供了两个参数,所以 @代表了参数的内容!

怎么理解shell脚本中 exec "`dirname "$0"`/node""$0" "$@" ?
$0            #脚本自己的路径
"`dirname "$0"`"/node    #脚本目录下的node程序的路径
$@            #脚本被执行时的命令行参数

合起来就是:用脚本目录下的node程序来解释这个脚本本身

exec scala "$0" "$@" 是什么意思
这是bash语法。
$0          #表示当前脚本的名字
$@          #表示当前脚本执行的所有参数
exec scala "$0" "$@"   #表示用scala命令,带参数,执行当前脚本

$0 是位置参数,表示脚本名称

$1 表示脚本的第一个参数,依次类推直到 $9

exec用于执行命令、或脚本、或外部可执行程序,会新建一个shell去执行

综上,这里exec sh "$0" 就是执行脚本本身

所以,就是一个循环过程,每隔两秒打印一次 Hello

❾ Linux中的sh命令的详细解释

linxu下的sh命令相当于是shell命令语言的解释器。下面由我为大家整理了linux的sh命令的详细解释的相关知识,希望对大家有帮助!

一、Linux中的sh命令的详细解释

sh命令是shell命令语言解释器,执行命令从标准输入读取或从一个文件中读取。通过用户输入命令,和内核进行沟通!Bourne Again Shell (即bash)是自由软件基金会(GNU)开发的一个Shell,它是Linux系统中一个默认的Shell。Bash不但与Bourne Shell兼容,还继承了C Shell、Korn Shell等优点。

语法

bash [options] [file]

选项

-c string:命令从-c后的字符串读取。

-i:实现脚本交互。

-n:进行shell脚本的语法检查。

-x:实现shell脚本逐条语句的跟踪。

二、Linux中的sh命令的具体例子

使用-x选项跟踪脚本调试shell脚本,能打印出所执行的每一行命令以及当前状态:

[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh

+ DEFINE=30

+ cat /var/log/secure

+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'

++ cat /root/satools/black.txt

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.16=1427

++ awk -F= '{print $1}' + IP=121.42.0.16

++ echo 121.42.0.16=1427

++ awk -F= '{print $2}'

+ NUM=1427

+ '[' 1427 -gt 30 ']'

+ grep 121.42.0.16 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.16

+ echo vsftpd:121.42.0.16

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.72=276

++ awk -F= '{print $1}'

+ IP=121.42.0.72

++ awk -F= '{print $2}'

++ echo 121.42.0.72=276

+ NUM=276 + '[' 276 -gt 30 ']'

+ grep 121.42.0.72 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.72

+ echo vsftpd:121.42.0.72

三、Linux中对.sh文件的操作命令

1、创建test.sh文件

touch test.sh

2、编辑sh文件

vi test.sh

3、保存退出

敲击esc, 然后输入 :wq ,回车退出

4、添加可执行权限,当然默认就是可执行的。

chmod +x test.sh

5、运行文件

(1)./test.sh

(2)sh test.sh

6、删除文件

rm test.sh

阅读全文

与sh中执行命令相关的资料

热点内容
服务器为什么一直掉线 浏览:745
主次梁箍筋加密和负筋箍筋 浏览:349
at命令win 浏览:146
个人所得税app的设置在哪里 浏览:138
linux空值 浏览:141
剪力墙钢筋用不用加密区 浏览:982
哪里app可以上高中生物课 浏览:474
cad粗糙度快捷键命令大全 浏览:523
腾讯云服务器无法运行软件 浏览:344
奔跑吧哪个app 浏览:99
哪个app听音乐最好 浏览:283
考研英语2真题pdf 浏览:701
烟台编程积木教育环境好不好 浏览:216
python优秀代码 浏览:622
androidtop命令 浏览:457
你平时怎么排解压力 浏览:70
表格中的文件夹怎样设置 浏览:478
em78单片机 浏览:962
splitjava空格 浏览:248
电脑怎么谷歌服务器地址 浏览:515