精华内容
下载资源
问答
  • shell中执行个命令的方法

    千次阅读 2018-11-22 09:30:06
    分割符:前后命令间没有必然的联系,前一个执行结束后、再执行第二个,没有逻辑关联; (2)&&分隔符:前后命令有逻辑关联,后面的命令是否执行取决于前面的命令是否执行成功,前者执行成....

    shell中执行多个命令的方法

    1、在命令行中同时输入多个语句:
    直接在linux命令行中可以依次执行多个命令,多个命令间可采用“;”、“&&”和"||"分割,三个分隔符作用不同:
    (1);分割符:前后命令间没有必然的联系,前一个执行结束后、再执行第二个,没有逻辑关联;
    (2)&&分隔符:前后命令有逻辑关联,后面的命令是否执行取决于前面的命令是否执行成功,前者执行成功,才会执行后面的命令。
    (3)||分隔符:前后命令有逻辑关联,与&&相反,前面的命令执行失败后才能执行后面的命令。

    多个命令间是有先后执行顺序的,执行成功或失败也仅仅是启动该命令的进程成功或失败,并不保证命令已执行完成或执行成功。
    eg: /etc/init.d/ssh stop;cp /opt/ssh /usr/bin/ssh
    有很大概率会在执行第二个命令时报错,因为第一个命令的进程已经启动,但是尚未执行完就开始执行第二个命令了。
    针对这种需要判断命令真实执行结果的情况,还是用脚本文件比较合适。

    2、写脚本文件

    展开全文
  • shell中执行一个字符串命令的方法

    万次阅读 2016-12-08 13:47:04
    先来写正确的方法 cmd="echo hello word" ...跟自己敲入命令执行结果是一样的。这我不知道为什么。盼高手来解答。 over   网上有很多人用 `eval $cmd` 或者 $($cmd) 。我试了

    先来写正确的方法

    cmd="echo hello word"

    $cmd

    或者eval $cmd。实际我测试的时候略有差别。比如执行‘ls -l’命令的时候,没有eval得到的就没有颜色。有了eval就有颜色。跟自己敲入命令的执行结果是一样的。这个我不知道为什么。盼高手来解答。

    over

     

    网上有很多人用 `eval $cmd` 或者 $($cmd) 。我试了一下都不行。鄙视那些没经过测试就乱回答问题的人。其实不用``或者$()就对了。

     

    千万要注意的是:你的命令一定要用单引号括起来,避免你的命令中含有$var这样的变量被扩展后赋值给cmd(其实还有很多扩展)。这样你执行的命令就可能产生问题。而且还是很隐蔽的问题。原理很简单,shell仅仅要得到一个原封不动的字符串。而后将该字符串送入shell就可以了。

    --本篇文章转自:shell中执行一个字符串命令的方法

    展开全文
  • shell脚本判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。 结合if-else语句实现判断上一个命令是否执行成功。 经过验证,该方法也适用...

     

    shell脚本中判断上一个命令是否执行成功

    shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。

    结合if-else语句实现判断上一个命令是否执行成功。

    经过验证,该方法也适用于make命令,并不仅仅限于shell 命令。

    示例如下:

    if [ $? -ne 0 ]; then
        echo "failed"
    else
        echo "succeed"
    fi

     

    或者:

    if [ $? -eq 0 ]; then
        echo "succeed"
    else
        echo "failed"
    fi


    另外

    shell中的比较符号如下:

     

    -eq等于
    -ne不等于
    -gt大于
    -lt小于
    ge大于等于
    le小于等于
    展开全文
  • shell脚本中执行命令Shell is a command-line interpreter that allows the user to interact with the system. It is responsible for taking inputs from the user and displaying the output. Shell一个命令行...

    shell脚本中执行命令

    Shell is a command-line interpreter that allows the user to interact with the system. It is responsible for taking inputs from the user and displaying the output.

    Shell是一个命令行解释器,允许用户与系统进行交互。 它负责从用户那里获取输入并显示输出。

    Shell scripts are a series of commands written in order of execution. These scripts can contain functions, loops, commands, variables. Scripts make it easy for the users to save certain sequences of codes that might be used again and again. Shell scripts can also have comments to increase readability.

    Shell脚本是按执行顺序编写的一系列命令。 这些脚本可以包含函数, 循环 ,命令, 变量 。 脚本使用户可以轻松地保存某些可能反复使用的代码序列。 Shell脚本也可以带有注释以提高可读性。

    A shell script needs to be saved with the extension .sh.

    需要使用扩展名.sh保存shell脚本。

    To let the Linux system know that the file is a shell script, the file needs to begin with the shebang construct.

    为了使Linux系统知道该文件是Shell脚本,该文件必须以shebang构造开头。

    
    #!/bin/bash 
    OR
    #!/bin/sh
    

    After this, the script can contain commands, functions, loops, conditional checks, etc.

    此后,脚本可以包含命令,函数,循环,条件检查等。

    A good script always contains comments that make it readable.

    一个好的脚本总是包含使其可读的注释。

    创建并运行基本的Shell脚本 (Creating and running a basic shell script )

    A shell script can be created using vi, cat command, or the normal text editor in GUI.

    可以使用vi, cat命令或GUI中的常规文本编辑器来创建Shell脚本。

    Let’s create a basic shell script using vi

    让我们使用vi创建一个基本的shell脚本

    
    $ vi basic_script.sh
    

    This will take you to the vi editor. Add the following lines:

    这将带您到vi编辑器。 添加以下行:

    
    #!/bin/bash
    whoami
    date
    

    This simple script should display the current user followed by the date.

    这个简单的脚本应显示当前用户,然后显示日期。

    To save and exit the vi editor:

    要保存并退出vi编辑器:

    • Press ESC

      按ESC
    • Type :

      类型:
    • Type in ‘wq’

      输入“ wq”
    • Hit Enter

      按下Enter

    By default, the creator of the script does not get executable permission for the file.

    默认情况下,脚本的创建者不会获得该文件的可执行权限。

    To change that:

    要更改此设置:

    
    $ chmod +x basic_script.sh
    

    This will give you (current user) the permission to execute the file.

    这将向您(当前用户)授予执行文件的权限。

    To run the script :

    运行脚本:

    
    $ bash basic_script.sh
    
    Basic Script 1

    The first line of output corresponds to ‘whoami’ command and the second line to ‘date’ command.

    输出的第一行对应于“ whoami”命令,第二行对应于“ date”命令。

    Another way of running the script is :

    运行脚本的另一种方法是:

    
    $ ./basic_script.sh 
    

    Running the file this way might require the user to give permission first. Running it with ‘bash’ doesn’t require the permission.

    以这种方式运行文件可能需要用户首先授予权限。 使用“ bash”运行它不需要许可。

    Bash Permision

    The same script is running with ‘bash’ before it, but having permission issues when tried to execute directly. The reason this is happening is that the command bash [filename] only needs read permission from the file.

    相同的脚本之前带有“ bash”运行,但是尝试直接执行时存在权限问题。 发生这种情况的原因是命令bash [filename]仅需要从文件读取权限。

    Whereas the command ./[filename] run the file as an executable and hence requires the permission to execute. This question has been answered in detail on StackExchange.

    而命令./[filename]将文件作为可执行文件运行,因此需要执行权限。 该问题已在StackExchange上得到了详细解答。

    Bash

    In general it is better to provide executable permission.

    通常,最好提供可执行权限。

    在Shell脚本中使用变量 (Using variables in shell scripts )

    Scripts can include user-defined variables, in fact as scripts get voluminous in size it is essential to have variables that are clearly defined. Variables that are self-descriptive in nature is another quality of a good script.

    脚本可以包含用户定义的变量,实际上,随着脚本的大小变得越来越庞大,必须明确定义变量。 本质上具有自描述性的变量是好的脚本的另一种品质。

    Add the following lines to the script :

    将以下行添加到脚本中:

    
    #!/bin/bash
    #This is a comment
    
    #defining a variable
    GREETINGS="Hello! How are you"
    echo $GREETINGS
    
    Shell Script In Vi

    GREETINGS is the variable defined and later accessed using ‘$’.

    GREETINGS是定义的变量,以后使用'$'访问。

    There should be no space in the line where variables being assigned a value.

    行中没有为变量分配值的空间。

    Let’s run the script:

    让我们运行脚本:

    Using Variable Output

    从命令行读取输入 (Reading input from the command line)

    Shell scripts can be made interactive with the ability to accept input from the command line. Read command can be used to store the command line input in a variable.

    可以使Shell脚本具有交互性,并能够接受来自命令行的输入。 读取命令可用于将命令行输入存储在变量中。

    
    #!/bin/bash
    #This is a comment
    
    #defining a variable
    echo "What is your name?"
    #reading input 
    read NAME
    #defining a variable
    GREETINGS="Hello! How are you"
    echo $NAME $GREETINGS
                     
    

    A variable NAME has been used to accept input from the command line.

    变量NAME已用于接受命令行输入。

    On running the script :

    在运行脚本时:

    Reading Output

    定义功能 (Defining functions )

    Users can define their own functions in a script. These functions can take multiple arguments.

    用户可以在脚本中定义自己的功能。 这些函数可以采用多个参数。

    In the script add :

    在脚本中添加:

    
    #!/bin/bash
    #This is a comment
    
    #defining a variable
    echo "What is the name of the directory you want to create?"
    #reading input 
    read NAME
    #defining a variable
    
    echo "Creating $NAME ..."
    mkcd ()
    {
      mkdir "$NAME" 
      cd "$NAME"
    }
    
    mkcd
    echo "You are now in $NAME"
    

    This script will ask the user for a directory name. It will then create the directory and cd into it.

    该脚本将询问用户目录名称。 然后它将创建目录并cd进入该目录。

    Funciton In A Script 1

    结论 (Conclusion)

    We saw how scripts can be used to run commands in a serial order. Scripts help users in reducing redundancy and save time. Scripts can also be shared among different users.

    我们看到了如何使用脚本以串行顺序运行命令。 脚本可帮助用户减少冗余并节省时间。 脚本也可以在不同用户之间共享。

    The Scripts we saw in this tutorial were quite basic, scripts can be designed to perform complex tasks as well. To learn more about scripting refer this.

    我们在本教程中看到的脚本非常基础,脚本也可以设计为执行复杂的任务。 要了解有关脚本的更多信息,请参考

    翻译自: https://www.journaldev.com/41511/execute-command-shell-script

    shell脚本中执行命令

    展开全文
  • 通常情况下,在shell脚本需要获取命令的输出内容,然后根据输出内容判断下一步的执行操作。比较常用的种方式就是, 匹配命令输出的内容是否存在某些关键字,选择执行的不同动作。比较常用的种方式就是采用...
  • Linux shell执行一次执行多个命令

    千次阅读 2019-07-04 10:35:51
    shell执行个命令 1.1 每个命令之间用;隔开 这种方式下每个命令的执行给果,不会影响其它命令的执行。换句话说,每个命令都会执行, 但不保证每个命令都执行成功。 ls;cat file_name 1.2 每个命令之间用&...
  • shell中执行mysql命令

    千次阅读 2017-08-24 09:26:15
    先整理下shell中执行mysql的几种方法吧: 1. 使用-e进行参数传递,适合简单的命令,如 mysql -uuser -ppasswd -e "create database db;" 必要时候请添加上-d -h等参数 2. 使用EOF进行传递,适合比较...
  • Linux编写shell脚本执行个命令

    千次阅读 2020-06-04 21:22:27
    Linux下编写shell脚本批量执行个命令
  • shell中判断前一个命令是否执行成功

    千次阅读 2018-04-04 17:15:32
    通过判断返回值来解决:if [ $? -eq 0 ];then 命令正确的分支else 命令失败的分支fi例如:
  • Shell:重复执行一个命令n次

    万次阅读 2017-03-23 21:06:50
    方法一for i in {1..10}; do echo "Hello, World";...在~/.bashrc文件创建一个run函数(函数名字随意):function run() { number=$1 shift for n in $(seq $number); do $@ done }使./bashrc生效souce ~/./bas
  • linux shell中执行命令

    千次阅读 2019-08-02 22:18:59
    1、每个命令之间用;(分号)隔开 2、每个命令之间用 &...|| : 前一个命令执行成功就不会执行一个命令,不成功则会继续执行 实例: #!/bin/bash echo ========begin======== path1=/home/sxp/dir1/...
  • shell脚本判断上一个命令是否执行成功 shell中使用符号“$?”来显示上一条命令执行的返回值,如果为0则代表执行成功,其他表示失败。 结合if-else语句实现判断上一个命令是否执行成功。 经过验证,该方法也适用...
  • shell 命令执行顺序

    千次阅读 2017-07-06 03:43:40
    shell 命令执行顺序 一shell执行命令的步骤顺序如上图,看起来有些复杂。 当命令行被处理时,每一个步骤都是在Shell的内存里发生的;Shell不会真的把每个步骤的发生显示给你看。 所以,你可以假想这事我们偷窥Shell...
  • 种是以分号(;)进行划分: 表示:各命令执行的果,不会影响其它命令执行。换句话说,各个命令都会执行,但不保证每...表示:||是或的意思,只有前面的命令执行失败后才去执行命令,直到执行成功
  • shell执行变量命令

    千次阅读 2019-06-12 16:21:34
    变量里面有的命令可以通道${name}执行,比如 有的则不行,比如 这时候可以使用eval ${name}来执行 为什么会这样原因还没有找到,希望懂的大神帮忙评论解疑一下,谢谢 ...
  • Shell中执行sudo命令

    千次阅读 2018-04-13 17:18:20
    使用 echo "passwd"|sudo -S command The -S (stdin) option causes sudo to read the password from the ...例如 在shell中执行关机命令 #!/bin/bash echo "passwd"|sudo -S shutdown -P now
  • shell脚本执行命令错误处理

    万次阅读 2013-04-16 13:51:07
    工作有较久时间了,在公司最大有感受就是:有些部门的有些人从不...有一个脚本,明明已经有readme文件说明要用root权限来执行脚本,脚本也明明说了要用root权限。但就是不知人家没看到还是没意识到要看,经常搞错,经
  • 有两功能:是用于把已存在文件的时间标签更新为系统当前的时间(默认方式),它们的数据将原封不动地保留下来; 二是用来 创建新的空文件 。 #!/bin/bash  cd /home/oracle/monitor ...
  • gnome-terminal -x bash -c "conda create -n lsfm -c menpo python=3.5 lsfm;exit;exec bash;"安装好miniconda后一般要重新开一个窗口才能使用conda,所以会用到这个命令
  • shell中通过eval执行一个字符串命令

    千次阅读 2018-06-23 09:45:46
    #!/bin/bashecho "Switch Directory : /home/pktgen-2.9.0"dir="/home/pktgen-2.9.0"cd $dircmd="./pktgen_20180410 -c f -n 4 --proc-type auto --socket-mem 512 -b 01:00.1 --file-...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 616,548
精华内容 246,619
关键字:

shell中执行一个错误的命令