Questions tagged «shell»

Shell是Unix的命令行界面。您可以交互地在外壳程序中键入命令,也可以编写脚本来自动执行任务。使用此标记可解决适用于/ bin / sh和大多数兼容shell(ash,bash,ksh,zsh等)的问题。对于有错误的Shell脚本,请在此处发布之前在http://shellcheck.net中对其进行检查。

2
xargs:在多个命令中使用相同的参数
我正在尝试编写一种单行代码,以探测df -h分区的输出并在分区之一(或几乎)没有空间时发出警报。使用xargs的部分现在把我踢了屁股... echo 95 | xargs -n1 -I{} [ {} -ge 95 ] && echo "No Space on disk {}% full -- remove old backups please" 如何使第二个{}也显示“ 95”?


6
在非交互式外壳中运行脚本?
我有一个正在运行脚本的cron作业。当我通过交互式外壳程序运行脚本(将其shash为bash)时,它可以正常工作。当脚本通过cron自身运行时,它将失败。 我的猜测是它正在使用交互式外壳程序中设置的一些环境变量。我将对脚本进行故障排除并将其删除。 进行更改后,我知道可以将脚本在cron中排队以使其正常运行,但是有一种方法可以从命令行运行脚本,但告诉它可以从cron中运行-即在非交互式环境中?

3
如何临时绕过tcsh中的别名?
我正在使用tcsh。bash和zsh以及其他建议在这里无济于事。 我有几个别名与另一个命令的名称相同,因此,如果我不对它进行别名处理,则键入相同的名称现在会产生不同的效果。 大多数时候,我都希望使用别名命令,这就是为什么要使用别名的原因。但是,有时我需要无锯齿的命令。 在没有实际取消别名和重新定义命令的情况下,是否有一种简单的方法告诉tcsh使用取消别名的命令呢? 例如,vi别名为vim,但有时我只想使用vi。cd是别名,可以更改我的窗口标题,但有时我想不理它。 显然,我可以键入/ usr / bin / vi,但是由于cd是shell内置命令,因此没有等效命令。有没有一般的解决方案?
17 shell  alias  tcsh 


3
哪个外壳解释器运行没有shebang的脚本?
假设我帐户的默认外壳是zsh,但是我打开了终端并启动了bash并执行了一个名为的脚本prac002.sh,那么该外壳解释器将用于执行zsh或bash脚本?考虑以下示例: papagolf@Sierra ~/My Files/My Programs/Learning/Shell % sudo cat /etc/passwd | grep papagolf [sudo] password for papagolf: papagolf:x:1000:1001:Rex,,,:/home/papagolf:/usr/bin/zsh # papagolf's default shell is zsh papagolf@Sierra ~/My Files/My Programs/Learning/Shell % bash # I fired up bash. (See that '%' prompt in zsh changes to '$' prompt, indicating bash.) papagolf@Sierra:~/My Files/My Programs/Learning/Shell$ ./prac002.sh …

3
用纯Bash编写程序有多复杂?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 经过一些快速的研究,看来Bash 是图灵完备的语言。 我想知道,为什么Bash几乎专门用于编写相对简单的脚本?由于Bash Shell随Linux一起提供,因此您可以运行Shell脚本,而无需任何其他外部解释器或编译器,这是其他流行的计算机语言所必需的。这是一个巨大的优势,在某些情况下可以弥补语言本身的平庸性。 那么,此类程序的复杂程度是否有限制?纯Bash是否用于编写复杂程序?可以用纯Bash编写文件压缩器/解压缩器吗?编译器?一个简单的视频游戏? 仅仅因为调试工具非常有限而使用稀疏吗?


1
删除字段值小于或等于3的行-sed或awk?
我需要删除第8个字段(列)中值等于或小于2的每一行。 我的数据如下所示: 12-31 Airport 189 379 41 49.70946503 -124.91377258 2 2880 30.8 01-01 AlberniElementary 165 331 16 49.26100922 -124.80662537 4 5760 26.1 01-09 BamfieldMarine 161 323 23 48.83490372 -125.13572693 2 2875 27.4 01-10 BamfieldMarine 161 323 23 48.83490372 -125.13572693 3 3068 38.6 我知道使用awk可以剥离所需的值并将它们打印到另一个文件,并且我知道sed可以编辑当前文件。无论哪种情况,我都需要保留原始文件。 注意:请提供您的解决方案的详尽说明。仅编写命令是不够的,请注释建议。 进一步说明:数据具有标题行,因此最可能的解决方案将需要 awk'FNR> 1' 我想?
17 shell  shell-script  sed  awk  grep 


3
lftp:登录,将文件放在远程目录中,然后在单个命令中退出:正确的引用帮助
我想用一次lftp -c完成一个整个会话(因为稍后我将从脚本中启动它),-e但我设法做到了,但是ofc却让我参与了我不想使用的交互式会话。 手动状态 -c commands Execute the given commands and exit. Commands can be separated with a semicolon, `&&' or `||'. Remember to quote the commands argument properly in the shell. This option must be used alone without other arguments. 但是我不明白我应该如何正确地将命令/交互引用和字符串在一起。 lftp -e "put -O remote/dir/ /local/file.txt" -u user,pass ftpsite.com …
17 shell  lftp 

1
如何使用壳管从tmux“剪贴板”复制/复制?
在外壳环境中工作时,我经常遇到需要复制“中间管道输出”的情况(例如,从/到已经运行的编辑器,到其他外壳,其他机器等)。 在窗口环境中,通常通过系统剪贴板来解决此问题的简单(通用)方法,例如: X11:... | xsel -i/xsel -o | ... OS X:... | pbcopy/pbpaste | ... 使用tmux复制/粘贴工具如何获得类似的便捷行为?

2
提取文本文件行的中间部分?
我正在编写一个PHP脚本来解析大型文本文件,以便从中插入数据库。但是,在我的主机上,该文件太大,并且达到了PHP的内存限制。 该文件大约有16,000行。我想将其分成四个单独的文件(首先),看看是否可以加载这些文件。 我可以得到的第一部分head -4000 file.txt。中间部分比较棘手-我正在考虑将tail输出传递到head(tail -4001 file.txt | head -4000 > section2.txt),但是还有另一种/更好的方法吗? 实际上,我的逻辑搞砸了–对于第二部分,我将需要类似的内容tail -12001 file.txt | head - 4000,然后降低下一部分的tail参数。我已经很困惑了!:P



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.