Questions tagged «shell»

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

2
在执行子壳之前先展开它?
我经常使用子外壳运行命令,有时希望在运行某些东西之前先扩展子外壳。 例如,如何在运行之前扩展以下命令行,以便可以编辑子shell的结果? 例如 $ find -name "test.txt" /tmp/test.txt $ mv $(!!) /tmp/new.txt 我希望在运行命令之前看到子外壳已扩展,如下所示: $ mv /tmp/test.txt /tmp/new.txt 有什么办法可以做到这一点?


7
如何将变量用作数组名称的一部分
我有两个数组: arrayA=(1 2 3) arrayB=(a b c) 我想使用命令行参数打印其中一个,即不带任何一个if else。 我尝试了几种语法变化,但均未成功。我想做这样的事情: ARG="$1" echo ${array${ARG}[@]} 但出现“不良替代”错误。我该如何实现?
11 bash  shell 

2
脚本出现问题,文件名中带有空格
我有一个脚本,该脚本将来自远程主机的文件压缩回本地。有时文件名包含空格。scp不喜欢其文件名中的空格。由于某种原因,我尝试处理空间的结果未产生正确的scp路径。 码: PATH=/var/root/Documents/MyFile OG-v1.2.3.pkg scp $PATH Me@10.1.10.33:/Users/Me/Desktop 结果是 Cannot find directory: var/root/Documents/MyFile Cannot find directory: OG-v1.2.3.pkg 将PATH括在引号中"$PATH"会产生相同的错误。 将空间交换为逃逸空间也不起作用,尽管据我所知应该这样: ESC_PATH=${PATH/' '/'\ '} 尽管打印转义的路径表明编辑有效: echo $ESC_PATH > /var/root/Documents/MyFile\ OG-v1.2.3.pkg


12
过滤文本文件以删除空行的好方法是什么?
我有一个.csv文件(在Mac上),有一堆空行,例如: "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum ","2","3","4" "1", "2", "lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum lorem ipsum …




4
Makefile如何检测本地计算机上是否有命令?
我开始使用org-mode在GTD风格的系统中计划任务。将每个组织文件放在Dropbox文件夹的目录中,我运行emacs来从三个不同的本地计算机(Cygwin,Mac OS X和Debian)编辑/管理这些文件。由于我也使用MobileOrg从iPad访问这些组织文件,因此,进行checksums.dat任何更改时,文件必须保持最新状态。这可以通过运行来完成md5sum *.org > checksums.dat。 问题是有三种不同的命令md5sum命令:md5sum.exe在Cygwin,md5Mac OS X和md5sumDebian中。最理想的情况是将Makefile存储在Dropbox foder中,该文件检测当前计算机中可用的命令并运行该命令以执行md5校验和操作。
11 shell  make  hashsum 

2
循环输出管道可防止局部变量修改
我正在尝试编写一个简单的bash函数,该函数将许多文件和/或目录作为其参数。这应该: 完全限定文件名。 对它们进行排序。 删除重复项。 打印所有实际存在的内容。 返回不存在的文件数。 我有一个脚本,几乎可以执行我想要的操作,但是无法进行排序。按原样返回脚本的返回值是正确的,但是输出不是(未排序和重复的)。如果我取消注释所示的| sort -u语句,则输出正确,但返回值始终为0。 注意:欢迎使用更简单的解决方案来解决问题,但问题实际上是为什么在我的代码中会发生这种情况。也就是说,为什么添加管道似乎停止脚本增加变量的作用r? 这是脚本: function uniqfile { local r=0 for arg in "$@" do readlink -e "$arg" || (( ++r )) done #| sort -u ## remove that comment return $r }

2
如何使导出的外壳变量永久化?
export LD_PRELOAD=/usr/lib/libtsocks.so 可以通过这种方式导出是可以的,但是如何使其永久化呢?我希望重新启动后仍要更改LD_PRELOAD。我正在使用Ubuntu和Fedora
11 linux  shell 

2
使用HERE文件并重定向命令的输出
我在批处理脚本中有以下代码: mpirun -np 6 ./laplace <<END 100 100 100 0.01 100 3 2 1 END | tail -n 1 > output 但这不起作用。我要执行的操作是使用HERE文件作为mpirun命令的输入,然后将输出传递给tail命令。但是,我认为这里的文件和尾部输出变得混乱了。 我应该如何编写此代码,使其符合我的要求?

7
`highlight`命令
在将整个字符串传递到stdout时,是否可以使用命令轻松突出显示(带有颜色,粗体文本或反向的前/后背景)特定字符串?我正在考虑构建它,但是如果它已经存在,我宁愿使用它。一些理想的功能: 单独的突出显示字符串以自动方式以不同的方式突出显示。例如,第一个字符串将以红色突出显示,第二个字符串以绿色突出显示,第三个字符串以蓝色突出显示(无需手动配置)。 检测颜色支持并退回到可用的粗体/反转/其他突出显示方法。 允许匹配正则表达式和文字字符串。 如果匹配重叠,最好做一些聪明的事情,例如“ foobar”和“ barbar”。 除了添加颜色代码外,在stdin和stdout之间没有任何修改。

5
无法使用Crontab中的Shell脚本SSH到远程计算机
以下是我尝试运行的脚本,该脚本没有任何问题 for i in `seq 200 2100` do usr=(`ssh -t -t -o ConnectTimeout=60 machine$1 finger | tail -1 | awk '{print$1}'`) echo $usr done 但是,一旦我将其添加到crontab中,它就不会给我用户。 22 12 * * * sh /home/subrahmanyam/Scripts/who.sh 请发表您的想法..... 可能是cron demon正在运行,所以我们需要包含一些二进制文件...?

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.