如何使用子进程运行此命令?
我试过了:
proc = subprocess.Popen(
'''ECHO bosco|"C:\Program Files\GNU\GnuPG\gpg.exe" --batch --passphrase-fd 0 --output "c:\docume~1\usi\locals~1\temp\tmptlbxka.txt" --decrypt "test.txt.gpg"''',
stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
)
stdout_value, stderr_value = proc.communicate()
Run Code Online (Sandbox Code Playgroud)
但得到了:
Traceback (most recent call last):
...
File "C:\Python24\lib\subprocess.py", line 542, in __init__
errread, errwrite)
File "C:\Python24\lib\subprocess.py", line 706, in _execute_child
startupinfo)
WindowsError: [Errno 2] The system cannot find the file specified
Run Code Online (Sandbox Code Playgroud)
我注意到的事情:
我正在使用一个回显结果而不是返回结果的PHP库.有没有一种简单的方法来捕获echo/print的输出并将其存储在变量中?(已输出其他文本,并且未使用输出缓冲.)
我正在使用echo输出的一些函数.但我需要他们,return所以我可以在PHP中使用它们.
这是有效的(似乎毫无障碍),但我想知道,有更好的方法吗?
function getEcho( $function ) {
$getEcho = '';
ob_start();
$function;
$getEcho = ob_get_clean();
return $getEcho;
}
Run Code Online (Sandbox Code Playgroud)
例:
//some echo function
function myEcho() {
echo '1';
}
//use getEcho to store echo as variable
$myvar = getEcho(myEcho()); // '1'
Run Code Online (Sandbox Code Playgroud) 我有一个shell脚本,我希望在不同的Linux服务器上运行.当我使用-e选项运行echo命令并在字符串中转义字符时,它在Ubuntu 12.04或Ubuntu 11.04上的sh shell上没有按预期执行.我们正在使用的两个服务器,我希望脚本可以运行CentOS 5.3和Ubuntu 12.04.当我在两个服务器上的bash中运行以下命令时,会产生预期的输出:
$ echo -e "line1\nline2"
line1
line2
Run Code Online (Sandbox Code Playgroud)
当我在CentOS机器上运行相同的命令时,也会产生正确的输出.但是当我在Ubuntu 12.04或11.04上运行命令时,会产生以下输出:
$ echo -e "line1\nline2"
-e line1
line2
Run Code Online (Sandbox Code Playgroud)
有趣的是,如果我在Ubuntu上运行以下内容,它会自动解释转义字符.
$ echo "line1\nline2"
line1
line2
Run Code Online (Sandbox Code Playgroud)
该脚本需要在sh shell中运行,并且应该可以在不同的机器上移植.任何解决方案 我也非常感谢与某些文档的链接,这些文档解释了为什么或如何发生这种情况.
我在工作中回到了很多Bash脚本,我生锈了.
有没有办法从函数返回本地值字符串而不使其全局或使用echo?我希望函数能够通过屏幕与用户交互,但也可以将返回值传递给变量而不需要像export return_value="return string".printf命令似乎完全像echo一样响应.
例如:
function myfunc() {
[somecommand] "This appears only on the screen"
echo "Return string"
}
# return_value=$(myfunc)
This appears only on the screen
# echo $return_value
Return string
Run Code Online (Sandbox Code Playgroud) 在我的shell脚本中,我有以下代码
echo * | tr ' ' '\n'
Run Code Online (Sandbox Code Playgroud)
在这里,我注意到虽然我使用*,但是它正在跳过隐藏文件(.*)之后我尝试了一个明显的改变
echo .* | tr ' ' '\n'
Run Code Online (Sandbox Code Playgroud)
这解决了我的隐藏文件问题.但我对这种奇怪的行为感到好奇*
因为.*是*
的理想输出的子集
echo* - >所有文件包括隐藏文件
echo.* - >所有隐藏文件
echo [^.]* - >所有非隐藏文件(当前为echo*)
因此echo*表现得像echo [^.]*
如何使用echo获取包括隐藏文件在内的整个文件列表.类似的是ls和dir的输出,尽管ls -a给出了理想的输出
下午早些时候,我曾要求解决如何在Wordpress的不同类别页面上回应不同侧边栏的问题.现在我面临的问题是在所有类别页面的侧栏下面都会显示一个连续的"1".但是,当我切换回在所有类别页面上只显示一个侧边栏的旧代码时,就不会发生这种情况.这是最初在sidebar.php文件中的代码,它在所有页面上只回显一个侧边栏:
<?php if ( is_active_sidebar( 'main_sidebar' ) ) : ?>
<div id="main_sidebar" class="widget-area">
<?php dynamic_sidebar( 'main_sidebar' ); ?>
</div><!-- #first_sidebar .widget-area -->
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)
这是我在sidebar.php文件中放置的修改后的代码,该文件在不同的类别页面上回显不同的侧边栏:
<?php if ( is_active_sidebar( "main_sidebar" ) ) : ?>
<div id="main_sidebar" class="widget-area">
<?php
if ( is_category( '7' )) {
echo dynamic_sidebar( 'category_fashion' );
}
elseif ( is_category( '1' )) {
echo dynamic_sidebar( 'category_music' );
}
elseif ( is_category( '5' )) {
echo dynamic_sidebar( 'category_tastemakers' );
}
elseif ( is_category( '11' )) {
echo dynamic_sidebar( …Run Code Online (Sandbox Code Playgroud) 我正在尝试-s在我的脚本中实现(即静默)选项 - 当给出错误/信息等时,将发送到syslog,否则在屏幕上打印并同时发送到syslog.这就是我正在做的事情:
echo -e "This Is a Test Message\nWell, not really!!" 2>&1 | logger
Run Code Online (Sandbox Code Playgroud)
将echo消息发送到syslog(不在屏幕上打印),但不能只是弄清楚如何同时做两者.我看到人们只谈论在屏幕上打印时记录syslog或发送日志到不同的文件,而不是我正在尝试处理的情况.任何帮助或指针将不胜感激.干杯!!
我想以这种方式打印我从Array拆分中获得的内容:
string="abc test;ABCtest.it"
IFS=';' read -a array <<< "$string"
name="${array[0]}"
url="${array[1]}"
echo -ne "\n$url,$name" >> "$outputDir/$fileName"
Run Code Online (Sandbox Code Playgroud)
但输出文件不包含url部分
我认为问题是"." 但我不知道如何解决它
如果我试试这个
echo $url
Run Code Online (Sandbox Code Playgroud)
这是工作!
谢谢
我也试过printf和硬编码的文件名,但没有!
printf '%s %s\n' "$url" "$name" >> test.txt
Run Code Online (Sandbox Code Playgroud)
似乎当我尝试在变量$ url之后连接另一个东西时,变量的某些部分被删除或覆盖到输出文件中
例如,如果我尝试这个
printf '%s %s\n' "$url" "pp" >> test.txt
Run Code Online (Sandbox Code Playgroud)
我用简单的cat test.txt得到的是:
pptest.it
Run Code Online (Sandbox Code Playgroud)
但变量$ url的内容必须是ABCTest.it
这很奇怪
部分代码是
while ($row = mysqli_fetch_assoc($result))
{
echo "$row[firstname] $row[lastname]";
echo "<hr>";
echo "<strong>Date Referred:</strong>     $row[cf_831]";
echo "<br/>";
echo "<strong>Date Today:</strong>       $today";
echo "<br/>";
}
Run Code Online (Sandbox Code Playgroud)
例如,我如何设计此部件的样式?
"$row[firstname] $row[lastname]"
Run Code Online (Sandbox Code Playgroud)