Tag: shell

pipe道标准输出和标准错误到两个不同的进程在shell脚本?

我有一个pipline正在做 command1 | command2 所以,命令1的标准输出到命令2,而命令1的标准input到terminal(或shell的标准输出)。 如何将标准输出stderr的command3到第三个进程( command3 ),而标准输出仍然是命令2?

bash:默默的杀死后台函数进程

贝壳大师, 我有一个bash shell脚本,在这个脚本中,我启动一个后台函数foo()来显示无聊和长时间命令的进度条: foo() { while [ 1 ] do #massively cool progress bar display code sleep 1 done } foo & foo_pid=$! boring_and_long_command kill $foo_pid >/dev/null 2>&1 sleep 10 现在,当foo去世时,我看到下面的文字: /home/user/script: line XXX: 30290 Killed foo 这完全破坏了我的迷人,否则大量的酷,进度条显示。 我如何摆脱这个信息? tia,prmatta

删除函数定义(相当于unalias)

我目前正在构build一个程序,通过定义每个项目的别名和函数,根据他正在处理的项目,添加到当前用户的shell中。 这些别名和函数可能并且肯定会有相同的名称,例如cdproj ,它将cd到项目的根目录。 我想删除以前定义的别名和函数,当改变项目(之前(重新)定义其他项目的别名和function。我知道我可以删除在bash和zsh的unalias别名,但我怎么会做同样的一个函数?

Bash脚本错误:“function:not found”。 为什么会出现?

我试图在我的Ubuntu机器上运行一个bash script ,它给我一个错误: function未find 为了testing,我创build了以下脚本,可以在我的笔记本电脑上正常工作,但不能在我的桌面上工 任何想法,为什么? 我的笔记本电脑是一个mac,如果这是相关的。 #!/bin/bash function sayIt { echo "hello world" } sayIt 这在我的笔记本电脑上返回“hello world”,但在我的桌面上返回: run.sh:3:找不到函数hello world run.sh:5:语法错误:“}”意外 任何帮助将非常感激。

LINES和COLUMNS脚本中丢失的环境variables

考虑以下: me@mine:~$ cat a.sh #!/bin/bash echo "Lines: " $LINES echo "Columns: " $COLUMNS me@mine:~$ ./a.sh Lines: Columns: me@mine:~$ echo "Lines: " $LINES Lines: 52 me@mine:~$ echo "Columns: " $COLUMNS Columns: 157 me@mine:~$ variables$LINES和$COLUMNS是shellvariables, 而不是环境variables,因此不会导出到subprocess(但是当我调整xterm窗口的大小时,即使通过ssh从远程位置login时,它们也会自动更新)。 有没有办法让脚本知道当前的terminal大小? 编辑:我需要这个解决方法做这个问题 :vi(以及vim,less,和类似的命令)弄乱了屏幕每次我使用它。 改变terminal是不是一个选项,因此我正在寻找解决方法(滚动$LINES行肯定不是一个完美的解决scheme,但至less比丢失前一个屏幕更好)

在Linux中将多个JPG合并成一个pdf

我使用下面的命令来转换和合并目录中的所有jpg文件到一个pdf文件。 convert *.jpg file.pdf 目录中的文件编号从1.jpg到123.jpg 。 转换进行得很好,但转换后的页面都混在一起。 我希望PDF格式的页面从1.jpg到123.jpg的顺序与他们命名的顺序相同。 我也尝试了以下命令: cd 1 FILES=$( find . -type f -name "*jpg" | cut -d/ -f 2) mkdir temp && cd temp for file in $FILES; do BASE=$(echo $file | sed 's/.jpg//g'); convert ../$BASE.jpg $BASE.pdf; done && pdftk *pdf cat output ../1.pdf && cd .. rm -rf temp 但是还是没有运气。 […]

在Powershell中使用用户名/密码连接到networking文件夹

我经常访问Powershell中的共享networking文件夹来抓取文件等。但是,如果共享需要用户名/密码,Powershell不会提示我这些,不像Windows资源pipe理器。 如果我先在Windows资源pipe理器中连接到文件夹,Powershell将允许我连接。 我如何在PowerShell中validation自己?

在PowerShell中使用Enum类似的开关参数

我以这种方式在我的PowerShell脚本中使用开关参数。 param( [switch] $Word, [switch] $Excel, [switch] $powerpoint, [switch] $v2007, [switch] $v2010, [switch] $x86, [switch] $x64, ) 我试图弄清楚任何一个整洁的方式,让它更多的枚举风格。 正如任何人可能猜到的,我希望用户在word,excel和powerpoint之间进行select。 在x2007和v2010之间。 有没有一个简洁的方式来获得input参数枚举风格? 我是PowerShell的新手。 所以,如果这听起来像我不知道明显的东西,那么请指向我的一些链接,我可以阅读有关它。

你怎么能一次解压一个以上的文件?

我有一堆目录中的tar文件,我想一次从中提取所有的文件。 但是这似乎没有做任何事情: $ tar xf *.tar 这里发生了什么? 我该如何解开一堆文件?

最短的命令来计算在Unix上的一列输出的总和?

我确信有一个简单而快速的方法来计算Unix系统上一列值的总和(可能使用类似awk或xargs ),但编写一个shell脚本来逐行parsing行是唯一的现在想起来了。 例如,修改下面的命令以计算并显示SEGSZ列(70300)的总数的最简单方法是什么? ipcs -mb | head -6 IPC status from /dev/kmem as of Mon Nov 17 08:58:17 2008 T ID KEY MODE OWNER GROUP SEGSZ Shared Memory: m 0 0x411c322e –rw-rw-rw- root root 348 m 1 0x4e0c0002 –rw-rw-rw- root root 61760 m 2 0x412013f5 –rw-rw-rw- root root 8192