我在本地计算机上安装了netcat,在端口25565上运行了一个服务.使用命令:
nc 127.0.0.1 25565 < /dev/null; echo $?
Run Code Online (Sandbox Code Playgroud)
Netcat检查端口是否打开,如果打开则返回0,如果关闭则返回1.
我试图写一个bash脚本无休止地循环并每秒执行上面的命令,直到命令的输出等于0(端口打开).
即使在端口打开(1变为0)之后,我当前的脚本也会无休止地循环"...".
until [ "nc 127.0.0.1 25565 < /dev/null; echo $?" = "0" ]; do
echo "..."
sleep 1
done
echo "The command output changed!"
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
我在.bashrc中注释掉了这一行:
# [ -z "$PS1" ] && return
Run Code Online (Sandbox Code Playgroud)
现在别名被读取,但我仍然无法执行...:/
我们可以询问服务器是否已定义别名:
$ ssh server "cd /tmp && alias backup_tb"
alias backup_tb='pg_dump -U david tb > tb.sql'
Run Code Online (Sandbox Code Playgroud)
但它没有扩大:
$ ssh server "cd /tmp && backup_tb"
bash: backup_tb: command not found
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
请解释一下这个curl命令:
curl --digest \
-u{username}:{password} \
-v \
-X PUT \
-H 'Expect: ' \
-H 'Content-type: application/xml' \
-d @- \
http://webapi.ebayclassifieds.com/webapi/partners/{username}/ads/{ext-reference-id} \
< ad.xml
Run Code Online (Sandbox Code Playgroud)
<符号是什么意思?
我的理解:
[--digest] its a digest authentication
[-u{username}:{password}] obviously username and password
[-X PUT] method="put"
[-H 'Expect: '] header = 'Expect: '
[-H 'Content-type: application/xml'] additional header
Run Code Online (Sandbox Code Playgroud)
这可能是我得不到的-d @ - url <ad.xml [-d @ - http://webapi.ebayclassifieds.com/webapi/partners/ {username}/ads/{ext-reference-id} <ad.xml]
我找到了什么:
-d, - data
(HTTP)将POST请求中的指定数据发送到HTTP服务器,就像用户填写HTML表单并按下提交按钮时浏览器一样.这将导致curl使用content-type application/x-www-form-urlencoded将数据传递到服务器.比较-F, - form.
-d, - data与--data-ascii相同.要纯数据二进制发布数据,您应该使用--data-binary选项.要对表单字段的值进行URL编码,您可以使用--data-urlencode.
如果在同一命令行中多次使用这些选项中的任何一个,则指定的数据将与分离&-symbol合并在一起.因此,使用'-d name = daniel -d …
我注意到有三种方法可以定义shell函数,我从来没有在任何地方看过它.
# Option 1
function log(){
}
# Option 2
log(){
}
# Option 3, added due to answers
function log{
}
Run Code Online (Sandbox Code Playgroud)
这三个定义之间有不同之处吗?他们的行为是不同的,还是只是外表?
是否应该使用哪种标准?我希望第一个选项更可取,因为我想它可以消除某些地方的模糊性.
提前致谢!
答案后编辑:投票结束为"基于意见"的人; 我询问了行为上的差异,而不仅仅是为什么人们认为我应该使用哪种行为.事实上,只有Bash支持一个,这意味着每个人都应该使用第二个选项.
我正在尝试使用Haskell进行虚拟shell体验.我的意思是,我的意思是创建一个程序,当从终端窗口执行时,将您带入一个环境,允许您执行熟悉的命令的子集(例如,cd和mkdir)等.
文件系统将完全是虚拟的,因为它不会触及磁盘上的任何内容.
我的初始草图(下图)感觉很笨,事实上,组成一个MWE是一个拖累,我非常不习惯在功能上表示数据结构,并希望得到一些关于如何扭转这种体验的指针.任何有可用源代码的参考程序都会有所帮助,任何提示或思路都会有所帮助.
我写了以下内容
import qualified Data.Map as Map
import qualified Data.Either as Either
type Name = String
type Content = String
type Error = String
data DiskEntry = File Name Content
| Directory {name :: Name
, entries :: Map.Map String DiskEntry
} deriving (Show)
-- | The 'mkdir' function creates a new directory inside the given
-- directory. Attempts to create a 'DiskEntry' with the name 'name'
-- inside the given 'directory'. If an …Run Code Online (Sandbox Code Playgroud) 当脚本由ksh提供时,脚本如何确定它的路径?即
$ ksh ". foo.sh"
Run Code Online (Sandbox Code Playgroud)
我已经看到在BASH上发布的非常好的方法在stackoverflow和其他地方发布但尚未找到ksh方法.
使用"$ 0"不起作用.这只是指"ksh".
更新:我尝试使用"history"命令,但是不知道当前脚本之外的历史记录.
$ cat k.ksh
#!/bin/ksh
. j.ksh
$ cat j.ksh
#!/bin/ksh
a=$(history | tail -1)
echo $a
$ ./k.ksh
270 ./k.ksh
Run Code Online (Sandbox Code Playgroud)
我希望它回显"*./j.ksh".
我正试图从Magento出口18,0000种产品,但它却陷入困境
Warning: Please do not close the window during importing/exporting data
Run Code Online (Sandbox Code Playgroud)
阶段.
我发现可以通过使用快速重新索引这么多产品 php indexer.php --reindex <code>
是否可以使用类似强制导出所有产品的东西,或者通过其id运行数据流配置文件?
当我尝试从我的系统 ssh 到朋友的系统时,我面临大约 5-6 秒的延迟。这是命令的详细输出:
zeus@athena:~$ ssh -v ashwin@192.168.40.211
OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to 192.168.40.211 [192.168.40.211] port 22.
debug1: Connection established.
debug1: identity file /home/zeus/.ssh/identity type -1
debug1: identity file /home/zeus/.ssh/id_rsa type 1
debug1: Checking blacklist file /usr/share/ssh/blacklist.RSA-2048
debug1: Checking blacklist file /etc/ssh/blacklist.RSA-2048
debug1: identity file /home/zeus/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.0p1 Debian-3ubuntu1
debug1: match: OpenSSH_6.0p1 Debian-3ubuntu1 pat OpenSSH* …Run Code Online (Sandbox Code Playgroud) 我想将一个完整的目录(包含所有子目录)从作业a的工作区复制到另一个作业b的工作区。
我尝试使用工件,但找不到复制所有子目录的方法,并且没有保留目录结构的选项。
与其他编程/脚本语言一起工作后,我完全被Python的mysql接口所困扰(我对Python有点陌生),我无法提交更改。我已将代码剥离到最低限度:
#!/usr/bin/python
import mysql.connector as mariadb
mariadb_connection = mariadb.connect(
user='testdb',
password='testdb',
database='testdb',
host='127.0.0.1',
autocommit=True
)
mariadb_connection.autocommit=True
cursor = mariadb_connection.cursor(buffered=True)
cursor.execute( "UPDATE testdb SET descr='konijn' WHERE number=14549")
mariadb_connection.commit()
mariadb_connection.close()
Run Code Online (Sandbox Code Playgroud)
我本以为自动提交会成功,但事实并非如此。此外,mariadb_connection.commit()也不会执行任何更改。该数据库(相关程度最高):
number INTEGER,
type VARCHAR(255),
file VARCHAR(255),
year INTEGER,
month INTEGER,
descr VARCHAR(4096)
Run Code Online (Sandbox Code Playgroud)
我能够使用TCL / Tk使用相同的凭据来提交更改,因此这应该不是权限问题。
我究竟做错了什么?