-f file unix_unix-elf-file-format - CSDN
  • 【shell】常用语法 -b file -c file -f file-d file -x file  一、test条件判断 1,test文件测试: -b file  若文件存在且是一个块特殊文件,则为真 -c file  若文件存在
     
    

     【shell】常用语法 -b file  -c file  -f file-d file  -x file     

    一、test条件判断

    1test文件测试:

    -b file     若文件存在且是一个块特殊文件,则为真

    -c file     若文件存在且是一个字符特殊文件,则为真

    -d file     若文件存在且是一个目录,则为真

    -e file     若文件存在,则为真

    -f file     若文件存在且为一个规则文件,则为真

    -g file     若文件存在且设置了SGID位的值,则为真

    -h file     若文件存在且为一个符号链接,则为真

    -k file     若文件存在且设置了“sticky”位的值,则为真

    -p file     若文件存在且为一已命名管道,则为真

    -s file     若文件存在且其大小大于零,则为真

    -u file     若文件存在且设置了SUID位的值,则为真

    -r file     若文件存在且可读,则为真

    -w file     若文件存在且可写,则为真

    -x file     若文件存在且可执行,则为真

    -o file     若文件存在且被有效用户ID所拥有,则为真

     

    2test字符串比较

    -z string         string长度为0,则为真

    -n string         string长度不为0,则为真

    string1 = string2    若两个字符串相等,则为真

    string1 != string2   若两个字符串不相等,则为真

     

    3test命令的数字比较操作符

    int1 -eq int2      int1等于int2,则为真

    int1 –ne int2      int1不等于int2,则为真

    int1 –lt int2      int1小于int2,则为真

    int1 –le int2      int1小于等于int2,则为真

    int1 –gt int2      int1大于int2,则为真

    int1 –ge int2      int1大于等于int2,则为真

     

    4test复合表达式

    ! expr                     expr为假则复合表达式为真。expr可以是任何有效的测试表达式

    expr1 -a expr2           expr1expr2都为真,则为真

    expr1 -o expr2           expr1expr2有一个为真,则为真

     

    二、shell里的特殊变量

    # sh /usr/local/bkeep/shell.sh 001 002

    I'm $0 is:/usr/local/bkeep/shell.sh        //正在被执行脚本的名字;`basename $0`

    I'm $1 is:001                //$1接收到的参数

    I'm $2 is:002                //$2接收到的参数

    I'm $# is:2                   //总共接收到的参数个数

    I'm $* is:001 002         //把接收到的参数全部打印出来

    I'm $@ is:001 002        //同上

    I'm $? is:0                   //上一个脚本的退出状态“0代表正常;“1非正常退出

    I'm $$ is:24137            //当前执行脚本的进程ID

    I'm $! is:                     //前一个后台进程的id

     

    三:其他

    1.返回值 #?

    cd dir

    echo "$?"

    如果dir存在,则返回0,不存在则返回1. 其他函数的命令也是一样,比如diff,等等。

     

    每个命令都会返回一个 exit 状态(有时候也叫return 状态).成功返回0,如果返回一个非0 值,通
    常情况下都会被认为是一个错误码.一个编写良好的UNIX 命令,程序,和工具都会返回一个0 作为
    退出码来表示成功,虽然偶尔也会有例外.

    同样的,脚本中的函数和脚本本身都会返回退出状态.在脚本或者是脚本函数中执行的最后的命
    令会决定退出状态.在脚本中,exit nnn 命令将会把nnn 退出码传递给shell

     

    $?读取最后执行命令的退出码.函数返回后,$?给出函数最后执行的那条命令的退出码.这种给
    函数返回值的方法是 Bash 的方法.对于脚本来说也一样.总之,一般情况下,0 为成功,非0 失败W

     

     2 .

    $ 变量替换操作符
    只有在变量被声明,赋值,unset 或exported 或者是在变量代表一个signal 的时候,
    变量才会是以本来的面目出现在脚本里.变量在被赋值的时候,可能需要使用"=",
    read状态或者是在循环的头部.
    在""中还是会发生变量替换,这被叫做部分引用,或叫弱引用.而在''中就不会发生变
    量替换,这叫做全引用,也叫强引用.这两个符合在同一个按键上。具体见第5 章的讨论.
    注意:$var 与${var}的区别,不加{},在某些上下文将引起错误,为了安全,使用2.

     

    还有一个按键在左上角,即按键1的左边。此按键有下面的作用。即将ls -l的结果传给a

    17 a=`ls -l` # 把ls -l 的结果给a
    18 echo $a # 别忘了,这么引用的话,ls 的结果中的所有空白部分都没了(包括换行)
    19 echo
    20 echo "$a" # 这么引用就正常了,保留了空白

     或者直接

    echo "$(ls -l)" 也可以取出目录

     

    3.

    在read 命令状态中
    30 echo -n "Enter \"a\" "
    31 read a
    32 echo "The value of \"a\" is now $a."
    33
    34 echo
    35

    这个方法可以接受键盘输入到a中。

     

     4.

    在一个双引号中直接使用变量名,一般都是没有问题的.它阻止了所有在引号中的特殊字符的
    重新解释--包括变量名[2]--但是$,`和\除外.[3]保留$,作为特殊字符的意义,是为了能够在双
    引号中也能够正常地引用变量("$var").这样在""中可以使用变量所表达的值(Example 4-1).
    使用""来防止单词分割.[4]如果在参数列表中使用双引号,将使得双引号中的参数作为一个参
    数.即使双引号中的字符串包含多个单词(也就是包含空白部分),也不会变为多个参数,如:
    1 variable1="a variable containing five words"
    2 COMMAND This is $variable1 # COMMAND 将以7 个参数来执行
    3 # "This" "is" "a" "variable" "containing" "five" "words"
    4
    5 COMMAND "This is $variable1" # COMMAND 将以1 个参数来执行

     

    5.赋值的方法

    --------------------------------------------------------

    a:C风格的赋值
    7 (( a = 23 )) # 给一个变量赋值,从"="两边的空格就能看出这是c 风格的处理.
    8 echo "a (initial value) = $a"
    9
    10 (( a++ )) # 变量'a'后加1,C 风格.
    11 echo "a (after a++) = $a"
    12
    13 (( a-- )) # 变量'a'后减1,C 风格.
    14 echo "a (after a--) = $a"

     ------------------------------------------------

    37(( t = a<45?7:11 )) # C 风格的3 元操作.
    38 echo "If a < 45, then t = 7, else t = 11."
    39 echo "t = $t " # Yes!

    ---------------------------------------------------

    18 LIMIT=10
    19
    20 for ((a=1; a <= LIMIT ; a++)) # Double parentheses, and "LIMIT" with no "$".
    20 for ((a=1; a <= LIMIT ; a++)) # 双圆括号, 并且"LIMIT"变量前边没有 "$".
    21 do
    22 echo -n "$a "
    23 done

    --------------------------------------------

    b:let

    4 a=2334 # 整型
    5 let "a += 1"   #不加双引号也可以
    6 echo "a = $a "  # a = 2335

    --------------------------------------------------------------------

    c:取变量

    5 a=2334

    6 a=$(($a+1))

    7 echo "$a"   #a=2335

     ------------------------------------------

    展开全文
  • 问题描述: 最近服务器上ovs突然崩溃掉...|00001|reconnect|WARN|unix:/var/run/openvswitch/db.sock: connection attempt failed (No such file or directory) ovs-vsctl: unix:/var/run/openvswitch/db.sock: dat

    问题描述:

    最近服务器上ovs突然崩溃掉,ovs-vsctl查看时:

    |00001|reconnect|WARN|unix:/var/run/openvswitch/db.sock: connection attempt failed (No such file or directory)

    ovs-vsctl: unix:/var/run/openvswitch/db.sock: database connection failed (No such file or directory)


    解决办法:

    先杀掉ovsdb进程,然后重启服务

    killall ovsdb-server
    service openvswitch-switch force-reload-kmod


    展开全文
  • 重装好ovs后直接操作一切正常,...ovs-vsctl: unix:/usr/local/var/run/openvswitch/db.sock: database connection failed (No such file or directory) ovs-vsctl exited with code 1 * Error connecting to ovs-db

    重装好ovs后直接操作一切正常,但是重启虚拟机后会出现:
    ovs-vsctl: unix:/usr/local/var/run/openvswitch/db.sock: database connection failed (No such file or directory)
    ovs-vsctl exited with code 1
    * Error connecting to ovs-db with ovs-vsctl
    Make sure that Open vSwitch is installed, that ovsdb-server is running, and that
    “ovs-vsctl show” works correctly.
    You may wish to try “service openvswitch-switch start”.
    无法正确添加ovs

    原因是:ovs 需要 the ovsdb, ovs-vswitchd, ovs-vsctl, 但是关机后它们会默认关闭

    所以解决方法是每次重新开机都运行(run as root):

    ovsdb-server --remote=punix:/usr/local/var/run/openvswitch/db.sock \
                         --remote=db:Open_vSwitch,Open_vSwitch,manager_options \
                         --private-key=db:Open_vSwitch,SSL,private_key \
                         --certificate=db:Open_vSwitch,SSL,certificate \
                         --bootstrap-ca-cert=db:Open_vSwitch,SSL,ca_cert \
                         --pidfile --detach
    ovs-vsctl --no-wait init
    ovs-vswitchd --pidfile --detach
    展开全文
  • 从键盘输入文件结束符(end-of-file): 在Windows系统中,输入文件结束符的方法是按Ctrl+Z,然后按Enter或Return键。 在Unix系统中,包括在Mac OS X系统中,文件结束符输入Ctrl+D。 示例: 在while循环中,cin只有...

    从键盘输入文件结束符(end-of-file):
        在Windows系统中,输入文件结束符的方法是按Ctrl+Z,然后按Enter或Return键。
        在Unix系统中,包括在Mac OS X系统中,文件结束符输入Ctrl+D。

    示例:

    在while循环中,cin只有在遇到文件结束符(end-of-file),或遇到一个无效输入时(例如输入的值不是一个整数),cin的状态会变为无效。输入运算符>>和输出运算符<<都是返回左侧运算符。所以,处于无效状态的cin会使得while判断条件为假。

    #include <string>
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int a;
    	while (cin >> a)
    	{
    		cout << a << endl;
    	}
    	cout << "--- end ---" << endl;
    }

    正常输入整数,回车后会输出该整数。最后按Ctrl+Z,然后按Enter退出,结果截图如下:

    若在运行过程中,输入了无效字符,比如输入了一个字符e,则while也会退出循环。

     

    展开全文
  • 问题描述:上周公司的私有云(底层架构是Openstack+KVM,目前稳定性还不够好,开发团队在改进中)一个计算节点挂掉,之后恢复后发现这个计算节点的所有Linux虚拟机系统都变成只读了,复制文件提示:Read-only file ...
  • dos2unix命令–&gt; Dos to UNIX的缩写,用来将DOS格式的文本文件转换为UNIX格式 find . -type f -exec dos2unix {} \; find . -type f | xargs | dos2unix 备注: 1) 为什么需要用dos2unix进行格式转换 ...
  • 1.首先去官网下载:http://activemq.apache.org/apollo/download.html apache-apollo-...解压文件 软件包解压后得到一个目录apache-apollo-1.7.1[root@CentOS tools]# tar -zxvf apache-apollo-1.7.1-unix-distro...
  • Sometimes, we have met issue how to check whether one file exists using shell script. you use "-e" or "-f" ? the two of them have some different which may mislead you if you don't...
  • #!/usr/bin/env python #!encoding:utf-8 ...Python-Tail - Unix tail follow implementation in Python. python-tail can be used to monitor changes to a file. Example: import tail # Create a tai
  • UNIX经典命令详解

    2015-12-01 11:52:02
    UNIX经典命令详解 第一章 目录及文件操作命令  1.1 ls  [语法]: ls [-RadCxmlnogrtucpFbqisf1] [目录或文件......]  [说明]: ls 命令列出指定目录下的文件,缺省目录为当前目录 ./,缺省输出...
  • Unix中test命令的用法

    2012-02-23 19:29:12
    test命令的功能:检查文件和比较值。 1、判断表达式 if test (表达式为真) if test !(表达式为假) test 表达式1 -a 表达式2两个表达式都为真 test 表达式1 -o 表达式2两个表达式有一个为真...字符串相等
  • tail -f grep 的配合使用

    2019-03-05 10:18:38
    tail -f grep 的配合使用前言tail -f 多次grep过滤输出 前言 偶然发现一个很有意思的博客,转载记录一下。 博主只是勤劳的搬运工 tail -f 多次grep过滤输出 对日志记录做多次grep过滤输出,格式如下: tail -f log...
  • unix tar gzip压缩解压

    2012-02-13 17:39:20
    -f 当与 -c 选项一起使用时,创建的 tar 文件使用该选项指定的文件名;当与"-x"选项一起使用时,则解除该选项指定的归档。 -t 显示包括在 tar 文件中的文件列表。 -v 显示文件的归档进度。 -x 从归档中抽取
  • FileDescriptor FileDescriptor,顾名思义:“文件描述符”,用来表示开放文件、开放套接字。这个概念来自于*nux文件系统,Linux继承Unix “一切皆文件” 的概念: 文件类型 标记符 普通文件 - 目录...
  • tail -f log | grep xxx | grep yyy 发现grep失效,无法做正确输出。google研究了一下,原因如下: 管道 | 是全缓冲的,一般来说buffer_size为4096,有些是8192。不管具体值多少,只有buffer_size满了,才会看到...
  • 实现简单的shell终端,主要使用了fork函数 ,wait函数和execvp函数
  • shell脚本条件判断

    2014-07-04 15:08:22
    shell脚本条件判断 UNIX Shell 编程中条件判断是极为重要的,以下是常用的条件判断: -b file 若文件存在且是一个块特殊文件,则为真 ...-f file 若文件存在且是一个规则文件,则为真 -g file 若文件存在且设置了SG
  • Unix Cut

    2006-05-18 18:44:00
    cut命令cut的基本语法是 cut -cchars file chars表明要每行要输出的个数,可以用单个数字,比如-c5的话,就表明输出第五个字符,中间可以用,号间隔,比如-c1,2就输出第一个和第二个字符; 如果中间有-符号,就表明要输出一...
  • linux下shell中if的相关参数[ -a FILE ] 如果 FILE 存在则为真。 [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。 [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。... [ -f FILE
1 2 3 4 5 ... 20
收藏数 178,049
精华内容 71,219
热门标签
关键字:

-f file unix