天道酬勤,学无止境

variables

Store parameter into variable with space

问题 考虑以下带有输出的命令: $ du -sm ~/Documents 458 /home/utilisateur/Documents $ du -sm ~/Documents --exclude='aa bb' --exclude='cc dd' 153 /home/utilisateur/Documents 我希望用这样的一个变量替换排除项,以获得相同的输出。 $ du -sm ~/Documents "$c" 但是,如果我使用以下设置变量,我失败了。 我测试过: $ c=--exclude='aa bb'\ --exclude='cc dd' $ du -sm ~/Documents "$c" 458 /home/utilisateur/Documents $ c="\"--exclude='aa bb' --exclude='cc dd'\"" $ du -sm ~/Documents $c 458 /home/utilisateur/Documents du: cannot access '"--exclude='\''aa': No such file or directory du: cannot access 'bb'\''': No such file or directory du: cannot access 'dd'\''"': No such file

2022-07-11 09:59:14    分类:技术分享    bash   variables   quotes

Nitpicking: Tcl storing in a variable or not, for speed, in procedures

问题 这是一个普遍的问题。 假设 TCL 8.6,假设我有一个相当短的程序。 我有两种返回感兴趣值的方法: 1. 使用一些标准做法 if/else 代码,存储在变量中,并返回变量的值。 例如: proc me { gop goo } { if { [ lomsa $gop ] { set ret [ foo $goo $gop ] } else { set ret [ bar $gop $goo ] } return $ret } 2.使用三元参数,基本上,程序没有添加私有变量(即只使用参数)。 三元表达式的输出是返回值。 例如: proc me { gop goo } { expr { [ lomsa $gop ] ? [ foo $goo $gop ] : [ bar $gop $goo ] } } 我团队的一些成员认为可读性在第 1 项中稍好一些。 我无法在我的 TCL 设置中访问伪代码引擎(它是来自供应商的 shell),但我认为代码的差异及其性能会是,但如果有的话,也只是轻微的。 即,该过程需要将返回的值存储在某处。 为其注册特定变量的成本是多少,而不是将其保留为返回值? 这个问题可以扩展,例如,对于 switch 语句。 同样的规则适用。 switch 语句可以存储在变量中,然后在 switch 之后返回变量的值,或者 switch 语句将只返回值,而不将其存储在变量中

2022-05-17 05:04:04    分类:技术分享    variables   return   tcl   store   ternary

When C says start up values of global variables are zero, does it mean also struct members? And what is the initial value of a pointer?

问题 回答1 是的,这是由 C99 6.7.8p10 指定的: 如果具有自动存储持续时间的对象未显式初始化,则其值是不确定的。 如果具有静态存储持续时间的对象未显式初始化,则: 如果是指针类型,则初始化为空指针; 如果它具有算术类型,则将其初始化为(正或无符号)零; 如果是聚合,则每个成员都根据这些规则(递归地)初始化; 如果是联合,则根据这些规则(递归地)初始化第一个命名成员。 回答2

2022-05-17 04:55:04    分类:技术分享    c   variables

Reminder codings in Watson Conversation Service

问题 我正在使用 watson 对话服务制作食品有效期聊天机器人。 因此,当特定食物到期日临近时,主要功能会发出警报,这意味着我必须保存食物和食物的预期持续天数。 (例如,牛奶 - 14 天,或鸡蛋 - 7 天) 这是有人用我之前提出的问题为我回答的代码。 function updateMessage(input, data, req, res) { if (data.context.verifiedDate){ searchRequest(data, req, res); } else if (data.output && data.output.text) { return res.json(data); } return data; } function searchRequest(data, req, res){ // something to do and return value var sendRequest = "Thanks for wait, the request is" + valueRequest; data.output.text[0] = sendRequest; return data; } *Date.prototype.addDays = function(days) { var dat = new Date(this.valueOf())

2022-05-17 03:37:17    分类:技术分享    javascript   function   variables   watson-conversation

Is this way is prefered to swap two variable without temp in c?

问题 #include<stdio.h> int main() { int a=20,b=30; a=a+b; b=a-b; a=a-b; return 0; } 回答1 没有在 C 中不使用临时变量的情况下交换两个变量的首选方法。 在 C 中交换两个变量的首选方法是使用临时变量。 不使用临时的交换是一个过时的问题。 当我们为(b)寄存器很少且内存不多的机器编写(a)汇编语言代码时,这可能曾经是一个有趣的问题。 但是,当我们在具有充足内存和寄存器的机器上用 C 等高级语言编写时,什么都没有——什么都没有! ——通过尝试消除临时变量来获得肯定。 询问“在不使用临时变量的情况下交换两个变量的最佳方法是什么?” 这很像问“什么是让我的马在不使用马车鞭子的情况下拉我的马车的最佳方法是什么?”。 (对于固执己见的答案,抱歉,虽然不使用临时变量进行交换可能是一个有趣的智力问题,但在任何实际编程情况下,这都是一个容易出错的浪费时间。通过消除临时性为零。引入细微错误的可能性基本上不为零。) 回答2 在没有临时持有者的情况下交换变量的算法使用按位异或运算,而不是减法。 因此,使用名为a和b的变量,我们将拥有: a=a^b; b=a^b; a=a^b; 编辑:您的代码确实适用于我使用a和b的一些整数值对其进行测试的少数情况,但 XOR 是传统的做法。 正如评论者@wildplasser 指出的那样

2022-05-17 03:00:05    分类:技术分享    c   variables

How to reference a dict object?

问题 我有一个 Python dict 对象d 。 d = {'a': 1, 'b': 2, 'c': 3} 。 我的问题真的很简单。 我想将变量引用到d的元素。 例如,类似: In[1]: p = d['a'] >>> p = 1 In[2]: p = 2 In[3]: d >>> d = {'a': 2, 'b': 2, 'c': 3} 这甚至可能吗? 但据我所知dict对象是可变的。 回答1 不,这是不可能的。 执行该行后 p = d['a'] 情况看起来不像这样: p ───> d['a'] ───> 1 相反,它看起来像这样: p ───> 1 ^ │ d['a'] ───┘ 名称p直接绑定到任何被解析为键'a'的值的对象。 变量p对 dict d一无所知,您现在甚至可以删除 dict d 。 回答2 import _ctypes def di(obj_id): """ Inverse of id() function. """ return _ctypes.PyObj_FromPtr(obj_id) d = {'a': [1], 'b': 2, 'c': 3} print(d) # -> {'a': [1], 'b': 2, 'c': 3} p = id(d['a']) di(p)[0] = 42 print(d) # -> {'a': [42], 'b': 2, 'c

2022-05-17 02:34:05    分类:技术分享    python   variables   dictionary   reference

Should variable references be $-prefixed in arithmetic for loops (arithmetic contexts)?

问题 以下所有这些选项都可用于将 i 设置为计数。 count=5 for (( i=count; i>=0; i-- )); do echo "$i" done for (( i=$count; i>=0; i-- )); do echo "$i" done for (( i=$((count)); i>=0; i-- )); do echo "$i" done for (( i=${count}; i>=0; i-- )); do echo "$i" done 哪个是正确的或首选的? 回答1 通常,在((...))和$((...))等算术上下文中,仅按名称引用变量,不带$前缀(因为您的命令已经对变量$i执行了操作): for (( i=count; i>=0; i-- )); do echo "$i" done 由于((...))本身就是算术上下文,因此没有充分的理由在其中使用单独的扩展算术上下文 - $((count)) -。 请注意$count和${count}是等价的,并且在$之后将变量名 - count - 括在{和}中只是为了消除变量名与后续字符的歧义,这些字符也可以合法地成为变量名的一部分(这不会'不适用于您的命令)。 正如 Gordon Davisson 指出的那样,有些人选择总是使用${var}形式来获得视觉清晰度。 虽然在算术上下文中以$前缀的变量引用确实有效

2022-05-16 16:11:11    分类:技术分享    bash   variables   for-loop   syntax

Communication between Python Scripts

问题 回答1 我想根据 Sush 的提议提出一个完整的解决方案。 在过去的几天里,我一直在努力解决两个单独运行的进程之间的通信问题(在我的情况下 - 在同一台机器上)。 有很多解决方案(套接字、RPC、简单 RPC 或其他服务器),但它们都有一些局限性。 对我有用的是 SimpleXMLRPCServer 模块。 快速、可靠并且在各个方面都优于直接套接字操作。 可以从客户端完全关闭的功能齐全的服务器同样简短: from SimpleXMLRPCServer import SimpleXMLRPCServer quit_please = 0 s = SimpleXMLRPCServer(("localhost", 8000), allow_none=True) #allow_none enables use of methods without return s.register_introspection_functions() #enables use of s.system.listMethods() s.register_function(pow) #example of function natively supported by Python, forwarded as server method # Register a function under a

2022-05-16 13:28:29    分类:技术分享    python   variables   flask   pass-by-reference

Ansible: generate variables in loops

问题 在我的变量文件中,我需要定义一个列表变量,其项目具有相似的模式,并且还共享一些(冗余)信息。 我不想手动输入所有这些信息,而是想在循环中生成列表变量。 例如,我有 100 台主机,主 IP 地址为 192.168.100.[1:100],每个主机都有一个额外的 IP 地址 10.0.1.[1:100]。 所有主 IP 使用相同的网关,例如 192.168.100.254,所有额外 IP 使用另一个网关,例如 10.0.1.254。 在一个任务中,我想遍历所有主机,对于每个主机,它的主IP,额外IP和网关都是需要的。 我想在我的任务中使用“with_items”,所以我想要一个列表变量“IP_ADDRS”,其中每个项目都是一个如下所示的字典: { primary_ip: 192.168.100.x, primary_gw: 192.168.100.254, extra_ip: 10.0.1.x, extra_gw: 10.0.1.254} 而不是手动定义 IP_ADDRS: IP_ADDRS: - { primary_ip: 192.168.100.1, primary_gw: 192.168.100.254, extra_ip: 10.0.1.1, extra_gw: 10.0.1.254} - { primary_ip: 192.168.100.2, primary_gw

2022-05-16 10:10:29    分类:技术分享    variables   ansible   jinja2

unsigned long int accepts out of range values

问题 这是我对这段代码的第二个问题。 此代码来自“Sams 自学 C 编程”第 7 版第 66 页上的修改脚本。 从书中复制脚本后,我对其进行了修改(只是一点点)以使其更有趣。 我添加了一些额外的常量和变量等,使其能够接受更大的输入/输出值。 因为输入/输出是“unsigned long int”类型,其范围为 0 - 2147483647,所以我将其设置为 LIMIT。 然后我在程序的最后添加了一个“else”来处理高于该值的所有输入。 我只是想做一个实验,看看它是否会注册,超出范围的值。 我第一次发布了一个关于代码中的数学错误的问题,我自己没有找到。 就这样解决了。 以下是一些示例输出: [bad_cat@KittyLitter LearningCode]$ gcc SamsC.04.seconds.c [bad_cat@KittyLitter LearningCode]$ ./a.out Enter the number of seconds ( > 0, < 2147483647 ): 2147483646 2147483646 seconds is equal to 68 y 35 d, 3 h, 14 m, and 6 s [bad_cat@KittyLitter LearningCode]$ ./a.out Enter the number of seconds (

2022-05-16 03:04:24    分类:技术分享    c   variables   int   range