相关疑难解决方法(0)

如果__name__ =="__ main__":怎么办?

怎么if __name__ == "__main__":办?

# Threading example
import time, thread

def myfunction(string, sleeptime, lock, *args):
    while True:
        lock.acquire()
        time.sleep(sleeptime)
        lock.release()
        time.sleep(sleeptime)

if __name__ == "__main__":
    lock = thread.allocate_lock()
    thread.start_new_thread(myfunction, ("Thread #: 1", 2, lock))
    thread.start_new_thread(myfunction, ("Thread #: 2", 2, lock))
Run Code Online (Sandbox Code Playgroud)

python program-entry-point idioms namespaces python-module

5545
推荐指数
36
解决办法
261万
查看次数

如何在Git中检索当前提交的哈希值?

我想保留(现在)能够将Git变更集链接到存储在TFS中的工作项.

我已经编写了一个工具(使用Git中的一个钩子),我可以在其中将workitemidentifiers注入到Git变更集的消息中.

但是,我还想将Git提交的标识符(哈希)存储到自定义TFS工作项字段中.通过这种方式,我可以检查TFS中的工作项,并查看与工作项相关联的Git更改集.

如何从Git的当前提交中轻松检索哈希?

git tfs changeset tfs-workitem

1788
推荐指数
18
解决办法
81万
查看次数

双方括号[[]]比Bash中的单方括号[]更好吗?

最近在一次代码审查中,一位同事声称该[[ ]]构造比[ ]在类似的构造中更受欢迎

if [ "`id -nu`" = "$someuser" ] ; then 
     echo "I love you madly, $someuser"
fi
Run Code Online (Sandbox Code Playgroud)

他无法提供理由.有吗?

syntax bash if-statement

514
推荐指数
8
解决办法
20万
查看次数

如何检测脚本是否来源

我有一个脚本,exit如果它被采购我不希望它调用.

我想过检查是否$0 == bash但如果脚本来自另一个脚本,或者如果用户从不同的shell中获取它,则会出现问题ksh.

是否有可靠的方法来检测脚本是否来源?

bash ksh

188
推荐指数
9
解决办法
5万
查看次数

从shell脚本导入函数

我有一个shell脚本,我想用shUnit测试.脚本(和所有功能)都在一个文件中,因为它使安装更容易.

示例 script.sh

#!/bin/sh

foo () { ... }
bar () { ... }

code
Run Code Online (Sandbox Code Playgroud)

我想编写第二个文件(不需要分发和安装)来测试中定义的函数 script.sh

就像是 run_tests.sh

#!/bin/sh

. script.sh

# Unit tests
Run Code Online (Sandbox Code Playgroud)

现在的问题在于.(或source在Bash中).它不仅解析函数定义,还执行脚本中的代码.

由于没有参数的脚本没有任何坏处,我可以

. script.sh > /dev/null 2>&1
Run Code Online (Sandbox Code Playgroud)

但如果有更好的方法来实现我的目标,我就会徘徊.

编辑

我建议的解决方法在源脚本调用的情况下不起作用,exit所以我必须捕获退出

#!/bin/sh

trap run_tests ERR EXIT

run_tests() {
   ...
}

. script.sh
Run Code Online (Sandbox Code Playgroud)

run_tests调用该函数但是只要我重定向source命令的输出,脚本中的函数就不会被解析,并且在陷阱处理程序中不可用

这有效,但我得到的输出script.sh:

#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
   function_defined_in_script_sh
}
. script.sh
Run Code Online (Sandbox Code Playgroud)

这不打印输出但是我得到一个错误,该函数未定义:

#!/bin/sh
trap run_tests ERR EXIT
run_tests() {
   function_defined_in_script_sh
}
. script.sh …
Run Code Online (Sandbox Code Playgroud)

shell

48
推荐指数
3
解决办法
4万
查看次数

bash中的数组数组

我试图逐行读取输入文件,其中包含由句点分隔的字段.我想将它们放入一个数组数组中,以便稍后我可以循环它们.输入似乎没问题,但是将它"推"到数组(inData)似乎不起作用.

代码如下:

Input file: 
GSDB.GOSALESDW_DIST_INVENTORY_FACT.MONTH_KEY
GSDB.GOSALESDW_DIST_INVENTORY_FACT.ORGANIZATION_KEY


infile=${1}

OIFS=$IFS
IFS=":"

cat ${infile} | while read line
do
      line=${line//\./:}
      inarray=(${line})
#      echo ${inarray[@]}
#      echo ${#inarray[@]}      
#      echo ${inarray[0]}
#      echo ${inarray[1]}
#      echo ${inarray[2]}

      inData=("${inData[@]}" "${inarray[@]}")
done 
IFS=$OIFS

echo ${#inData[@]}   

for ((i = 0; i < ${#inData[@]}; i++))
do
 echo $i
    for ((j = 0; j < ${#inData[$i][@]}; j++))
    do
       echo ${inData[$i][$j]}
    done
done
Run Code Online (Sandbox Code Playgroud)

arrays bash shell

37
推荐指数
3
解决办法
6万
查看次数

Unix:源和导出有什么区别?

我正在编写一个shell脚本,用于读取具有key = value对的文件,并将这些变量设置为环境变量.但我有一个疑问,如果我愿意source file.txt将该文件中定义的变量设置为环境变量,或者我应该逐行读取文件并使用export命令设置它?

在这种情况下,源命令是否与导出不同?

unix linux

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