zoukankan      html  css  js  c++  java
  • Linux/Unix中的#!和!#

    是不是在Terminal输入命令的时候,输入了很长的一个路径,然后发现还有在同一条命令中再输一次的时候很恼火,其实Shell是提供了trick的,就是使用!#(和#!不同哦)

    习惯写脚本的猿,通常对于Shell(Bash,csh,tsh,zsh),Perl,Python,expect等的文件行首的 #!/usr/bin/**的格式都相当熟悉了,就是申明编译器的位置,开头的#!,被称为shebang木九十告诉编译器用什么命令运行该文件

    但是还有一个和shebang很像的东西,就是命令行使用的!#,表示位置引用,用几个例子说明一下

    1. 创建WPS的桌面快捷方式,因为默认的快捷方式是存在/usr/share/applications/下的,并且该目录下的文件均为不执行的,属主也是root,要在桌面创建,就必须更改属主,并添加可执行权限。

    ubuntu@ray : ~ $ sudo cp /usr/share/applications/wps*.desktop ~/Desktop && sudo chmod u+x !#:3/wps*.desktop && sudo chown $USER:$USER !#:8

    来解析一下:

     

    1. 其实!#(*,~,)的使用是一样的,都是Shell先把这些符号代表的内容扩充出来,然后再执行命令

    cp ~/Desktop/*.desktop ~/.cache/Trash/的命令中,我们都知道 "~" 表示用户主目录,即/home/$USER,其实在运行的时候,Shell会先将~替换成/home/$USER,才运行的,其中的*表示可以匹配任意长度的非空格字符串,也是Shell将~/Desktop/下,所有符合*.desktop的文件名都扩张出来,再运行命令的

    2. 运行的时候,Shell会将命令以空格分割成一段一段的,然后以第一个为0,第二个为1来建立索引,这样!#:0就表示索引的第一个元素"sudo",所有在这条命令中的都可以被重复利用的。

    ubuntu@ray : ~ $ ldd wps-office_9.1.0.4937~a16p2_i386.deb &&sudo nice -9 gdebi !#:1

    ldd wps-office_9.1.0.4937~a16p2_i386.deb &&sudo nice -9 gdebi wps-office_9.1.0.4937~a16p2_i386.deb

    天和地是灰色的,砖和瓦也是灰色的。临街的墙几经风化,几经修补,刷过黑灰、白灰,涂过红漆,书写过不同内容的标语,又终于被覆盖;风雨再把覆盖层胡乱地揭下来,形成一片斑驳的杂色,融汇于灰色的笼罩之中。路旁的树木苍黑,瓦楞中芳草青青。 远处,炊烟缭绕。迷蒙的曙色中,矗立着...
  • 相关阅读:
    IOS越狱开发错误解决
    IOS越狱开发环境搭建
    ios越狱开发
    IOS开发常用的开源组件
    ios日期比较
    IOS RGB颜色转换
    UILabel基本用法
    ios根据字体大小设置
    第五篇 窗口管理机制之输入机制--管道过滤器模式
    第四篇 ANDROID窗口管理服务实现机制--远程代理模式
  • 原文地址:https://www.cnblogs.com/raybiolee/p/4228212.html
Copyright © 2011-2022 走看看