小编Dr.*_*ogy的帖子

Bash:重定向文件描述符

我希望有人可以解释一个现象.正如标题所示,我正在学习文件描述符的重定向.在此过程中,我遇到了一个关于重定向符号使用的问题,特别是在设置永久重定向时.我注意到在某些情况下,我是否使用<或似乎并不重要>.例如,使用以下脚本:

#!/bin/bash

#Setting file descriptor 3 to redirect  to STDIN
exec 3<&0

#Setting STDIN to read from input file
exec 0<inputFile


while read var
do
    echo "$var"

done

#Setting STDIN to read from file descriptor 3 which is redirected to the default STDIN
exec 0<&3

read -p "Enter a word:" word

echo "$word"
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,如果我使用><在陈述exec 3<&0或中,似乎并不重要exec 0<&3.在这些陈述中的任何一个中,似乎如果我换出重定向符号,我仍然得到完全相同的结果.对我来说,对行进行相同类型的更改似乎很明显:

exec 0<inputFile
Run Code Online (Sandbox Code Playgroud)

exec 0>inputFile
Run Code Online (Sandbox Code Playgroud)

不会产生相同的结果,因为将STDIN重定向到文件与将文件重定向到STDIN不同.

所以我的问题是:

  1. <vs >:

    # …
    Run Code Online (Sandbox Code Playgroud)

bash redirect file-descriptor

4
推荐指数
1
解决办法
475
查看次数

空字符串布尔逻辑

我偶然发现了这个,我找不到足够的答案:

x = ""
Run Code Online (Sandbox Code Playgroud)

那么为什么是:

x == True
False

x == False
False

x != True
True

x != False
True
Run Code Online (Sandbox Code Playgroud)

我是否应该得出结论x既不是也不TrueFalse

python string boolean

2
推荐指数
2
解决办法
3816
查看次数

Python Unittest-类变量

我希望有人不介意解释这里发生了什么.我试图运行一个已经确认使用python 2.7工作的python单元测试.但是,当试图在运行python 2.6的机器上运行相同的测试时,我收到一个我无法弄清楚的错误.这是一个正在发生的事情的例子

import re, string, os, subprocess, unittest
import MERCH_FUNCTIONS


class merchTests(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        self._merchFileString=open("test_file.txt",'r').read()
        self._merchFileList=self._merchFileString.split("\n") #convert string to list

    def test_stuff(self):
         #print list
         print(self._merchFileList) 
if __name__ == '__main__':
    unittest.main()
Run Code Online (Sandbox Code Playgroud)

出于某种原因,如果我使用python 2.7运行此代码,它会成功运行测试,并打印出self._merchFileList列表.

但是,当使用python 2.6运行相同的代码时,我收到以下错误:

======================================================================
ERROR: test_stuff (__main__.merchTests)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "MERCH_Test_Case.py", line 14, in test_stuff
    print(self._merchFileList)
AttributeError: 'merchTests' object has no attribute '_merchFileList'

----------------------------------------------------------------------
Ran 1 test in 0.000s

FAILED (errors=1)
Run Code Online (Sandbox Code Playgroud)

我不能为我的生活弄清楚这里发生了什么.我尝试了几个不同的事情但没有成功.如果有人愿意解释这里出了什么问题,我将非常感激.

先感谢您.

python unit-testing python-2.6 class-variables python-2.7

2
推荐指数
1
解决办法
2348
查看次数