我有一个名为address.php的文件,其中包含一些函数.我想从命令行调用该文件中的特定函数,怎么样?该函数的名称称为exportAddress,该函数需要一个参数
如何argparse在Python脚本中使用shell选项卡完成协作?
#!/usr/bin/env python
import argparse
def main(**args):
pass
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('positional', choices=['spam', 'eggs'])
parser.add_argument('--optional', choices=['foo1', 'foo2', 'bar'])
args = parser.parse_args()
main(**vars(args))
Run Code Online (Sandbox Code Playgroud)
在.py文件上设置可执行标志后,预期结果应为:
$ ./example.py sp<tab>
-> completes to "./example.py spam"
$ ./example.py --op<tab>
-> completes to "./example.py --optional"
$ ./example.py --optional b<tab>
-> completes to "./example.py --optional bar"
$ ./example.py --optional f<tab>
-> completes to "./example.py --optional foo"
and, additionally, prints "foo1 foo2" choices on stdout on a new line
Run Code Online (Sandbox Code Playgroud) 所以我安装了三个PHP版本的Gentoo盒子(没关系原因):
/usr/bin/php - > /usr/lib64/php5.4/bin/php/usr/bin/php5.5 - > /usr/lib64/php5.5/bin/php/usr/bin/php5.6 - > /usr/lib64/php5.4/bin/php我想使用composer 安装Laravel框架:
$ composer create-project laravel/laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)
但是这会引发错误,因为Laravel要求PHP> 5.5.9并且默认php解释器为5.4.所以我发出另一个命令:
$ /usr/bin/php5.6 /usr/bin/composer create-project laravel/laravel --prefer-dist
Run Code Online (Sandbox Code Playgroud)
这让我更进了一步,但随后Laravel的一些安装后命令composer.json发挥作用,安装崩溃了.
这是因为composer.json命令看起来像这样:
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
Run Code Online (Sandbox Code Playgroud)
如您所见,再次使用"默认"解释器!
现在,正确的PHP文件从以下shebang开始:
#!/usr/bin/env php
Run Code Online (Sandbox Code Playgroud)
这是一个很好的功能,因为PHP解释器可以在不同系统的不同位置找到.不幸的是,在这种情况下,env命令返回它在$PATH环境变量中找到的第一个可执行文件的路径.
我怎么可能改变当前的会话环境或执行什么样的技巧,以便执行整个Laravel安装过程php命令/usr/bin/php5.6而不是/usr/bin/php?
我不想改变$PATH变量或修改文件一样composer,composer.json或者Laravel的CLI工具artisan.
编辑:还假设我想从常规用户帐户执行此操作(即没有root权限).
系统设置:
MacOS Catalina 10.15.6
> git --version
git version 2.24.3 (Apple Git-128)
Run Code Online (Sandbox Code Playgroud)
文件:~/.gitconfig:
[user]
name = nickname
email = nickname@gmail.com
[includeIf "gitdir:~/Business"]
path = ~/.gitconfig-work
Run Code Online (Sandbox Code Playgroud)
文件:~/.gitconfig-work:
[user]
name = First Last
email = fl@work.com
Run Code Online (Sandbox Code Playgroud)
尝试检查终端配置时的输出:
(base) MBP-Name:~ myname$ cd ~/Business/
(base) MBP-Name:Business myname$ git config --get user.name
nickname
Run Code Online (Sandbox Code Playgroud)
我已经在配置文件中尝试了相对路径和~绝对/路径。每次更改时我都会重新启动 bash。另外,我还阅读了其他几个 stackoverflow 问题,但没有成功。其中一些人建议添加不区分大小写的选项,但这并没有解决问题。gitdirpathi
有任何想法吗 ?
我想尝试使用Apache Commons CLI,并认为一个好的起点是它的网页上的"使用"部分.
http://commons.apache.org/proper/commons-cli/usage.html
现在,这个例子建议创建一个DefaultParser,但是我能找到的最接近的声音是BasicParser.这是用的东西,我错过了什么吗?
尝试运行目标时抛出以下错误:
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: x/Xcode/DerivedData/x/Build/Products/Debug/PriorityQueue.framework/Versions/A/PriorityQueue
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
我的目标是用Swift编写的命令行工具(OSX).我正在使用用Swift编写的Cocoa Framework(PriorityQueue).当我EMBEDDED_CONTENT_CONTAINS_SWIFT在框架上设置为yes时,目标将运行以下警告:
objc[99144]: Class _TtC10Foundation15NSSimpleCString is implemented in both x/PriorityQueue.framework/Versions/A/Frameworks/libswiftFoundation.dylib and x/MyTargetName. One of the two will be used. Which one is undefined.
objc[99144]: Class _TtC10Foundation16NSConstantString is implemented in both x/PriorityQueue.framework/Versions/A/Frameworks/libswiftFoundation.dylib and x/MyTargetName. One of the two will be used. Which one is undefined.
objc[99144]: Class _TtC10Foundation15NSFastGenerator is implemented in both x/PriorityQueue.framework/Versions/A/Frameworks/libswiftFoundation.dylib and x/MyTargetName. One of the two will be used. Which one …Run Code Online (Sandbox Code Playgroud) 我在Ubuntu 11.10(Linux)上使用Python 3.2.我的新代码看起来像这样:
text = input("TEXT=")
提示后是否可以获得一些预定义的字符串,所以如果需要我可以调整它?它应该是这样的:
python3 file
TEXT=thepredefinedtextishere
Run Code Online (Sandbox Code Playgroud)
现在我按Backspace3次
TEXT=thepredefinedtextish
Run Code Online (Sandbox Code Playgroud)
现在我按Enter,变量text应该是thepredefinedtextish
我似乎无法找到有关Redis命令的有用信息.我想知道给定键值的数据类型.例如,为了列出我的数据库的所有键,我运行以下命令:
keys *
Run Code Online (Sandbox Code Playgroud)
在我的设置中,我得到以下结果:
1) "username:testuser:uid"
2) "uid:1:first"
3) "uid:1:email"
4) "uid:1:hash"
5) "global:next_uid"
6) "members:email"
7) "uid:1:username"
8) "uid:1:last"
9) "uid:1:salt"
10) "uid:1:access"
11) "uid:1:company"
12) "email:testuser@gmail.com:uid"
13) "uid:1:phone_number"
Run Code Online (Sandbox Code Playgroud)
我如何知道密钥members:email包含哪种数据类型?我试图跑,get members:email但我得到了错误(error) ERR Operation against a key holding the wrong kind of value
有什么想法吗?
我知道这听起来有点奇怪,但我需要将一些参数传递给$ _POST数组.类似于apache的方式,或任何其他Web服务器.
不幸的是我找不到libapache2-mod-php5我的Ubuntu.
对于我的生活,我找不到答案.因为我以特定的方式打包一个zip用于构建过程,所以我不想在根目录下的结果zip中包含一个文件夹.例如,如果我有这个文件路径:
MyFolder/
A.png
B.txt
C.mp3
Run Code Online (Sandbox Code Playgroud)
我使用命令:
zip -r -X "MyFolder.zip" MyFolder/*
Run Code Online (Sandbox Code Playgroud)
要么
cd MyFolder; zip -r -X "../MyFolder.zip" *
Run Code Online (Sandbox Code Playgroud)
我最终得到了一个包含MyFolder根元素的zip文件.我想要的是当我解压缩它是将所有这些转储到目录中,如下所示:
A.png
B.txt
C.mp3
Run Code Online (Sandbox Code Playgroud)
换句话说,我不希望MyFolder或任何其他文件夹作为根.我通过全手工阅读,并试图许多选项和大量的谷歌搜索的,和zip似乎只是真的希望有在根文件夹.
谢谢!