zoukankan      html  css  js  c++  java
  • Unix & Linux 教程学习_7

    13.14命令替换

    shell提供的一个最神奇、强大的特点:命令替换(command substitution)。 命令替换允许在一条命令中嵌入另一条命令。shell首先执行嵌入的命令。并且输出替换该命令。然后shell再执行整个命令。
    基本语法: 通过将一条命令封装在`(反引号)字符中,可以将它嵌入到另一条命令中,例:

    echo "The time and date are `date`. "

    这个例子中,date命令就封装在反引号中。shell首先求date命令的值,并将date命令的输出替换到较大的命令中,然后,执行较大的命令(这个例子中就是echo).
    假如现在时间是"2019年8月29日 星期四 13时53分51秒 CST"。则之前的命令就会被其值替换修改成:

    echo "The time and date are 2019年8月29日 星期四 13时53分51秒 CST "

    然后shell执行echo命令,生成最终输出:

    The time and date are 2019年8月29日 星期四 13时53分51秒 CST

    13.15 键入命令并进行修改

    当需要进行一个微小修改而不得不键入整个命令是不方便的,为了方便,shell提供了几个特性,从而使命令的输入大为简化。这些特性包括:历史列表、命令行编辑、自动补全和别名.

    13.16 历史列表:fc、history

    fc(fix command)命令: Bourne shell家族,可以用fc命令加__-l__(list, 列举)选项显示历史列表,C-Shell家族用history命令:

    fc -l
    history

    通过事件编号也可以调取并执行特写的命令。对于Bourne shell,可以__-s__(substitute)选项,后面跟事件编号,例如,假设希望重新执行编号24的命令,可以使用:

    fc -s 24
    !24
    对于C-Shell,只需键入一个!(bang)字符,后面跟事件编号即可。注意, !之后不能有空格:

    重新执行上一条命令:

    fc -s
    !!
    (~~)//C-Shell用两个!!

    两种shell都允许在重新执行命令前做些小修改:

    fc -s pattern=replacement number
    !number:s/pattern/replacement/
    patternreplacement都是字符串,number是事件编号.
    例如,事件编号25的命令是一条启动vi编辑器并打开一个叫tempfile的文件的命令:
    25 vi tempfile
    假设希望再次执行这条命令,但这次希望打开一个叫data的文件,可以这样:
    fc -s tempfile=data 25
    !25:s/tempfile/data/

    如果不指定事件编号,则默认为上一条命令.
    例如,希望执行date命令,但不小心输成了datq, 将显示一个错误消息:

    $ datq
    datq: command not found.
    因此您希望将q修改成e, 然后再重新执行这条命令。则可以:
    fc -s q=e
    对于C-Shell可以这样:
    ^pattern^replacement
    例:
    ^q^e

    假设您希望复制masterdate文件,并将副本命名为backup. 这时可以用cp命令,但是您键入了:

    cp masterxate backup
    您得到了一个错误消息,因为不小心键入了x,而不是d.
    为了修复这个错误并重新运行该命令,只需要输入下述命令即可:
    ^x^d

  • 相关阅读:
    Jasper_crosstab_Parameter_Crosstab Header
    Jasper_style
    Linux_hadoop_install
    Linux_jdk path (execute and install)
    Linux_install mod_ssl openssl apache
    Linux_install jdk
    Linux_service cloudera-scm-server start failed
    Linux_ERROR 1045 (28000): Access denied for user 'root'@'localhost'
    Jasper_table_Cloud not resolve style(s)
    Linux_shell条件判断if中的-a到-z的意思
  • 原文地址:https://www.cnblogs.com/cnyxj/p/11430150.html
Copyright © 2011-2022 走看看