小编Art*_*ero的帖子

shell 脚本中缩进的标准是什么?

Java 社区使用 4 个空格作为缩进单位。1
Ruby 社区使用 2 个普遍认可的空间。2

shell 脚本中缩进的标准是什么?2 或 4 个空格或 1 个制表符?

standard shell-script indentation

70
推荐指数
3
解决办法
7万
查看次数

以人类可读的方式显示 PATH

我想以更易读的方式显示我的 PATH 环境变量。

$ echo $PATH
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin:/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin:/Users/arturo/.rvm/bin:/usr/local/git/bin:/Users/arturo/.gvm/groovy/current/bin:/Users/arturo/.gvm/grails/current/bin:/Users/arturo/.gvm/griffon/current/bin:/Users/arturo/.gvm/gradle/current/bin:/Users/arturo/.gvm/lazybones/current/bin:/Users/arturo/.gvm/vertx/current/bin:/Users/arturo/.gvm/bin:/Users/arturo/.gvm/ext:/usr/local/git/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin
Run Code Online (Sandbox Code Playgroud)

我在想这样的事情:

$ echo $PATH | some cut and awk magic
/Users/arturo/.rvm/gems/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/gems/ruby-1.9.3-p392@global/bin
/Users/arturo/.rvm/rubies/ruby-1.9.3-p392/bin
/Users/arturo/.rvm/bin
...
Run Code Online (Sandbox Code Playgroud)

shell path environment-variables

57
推荐指数
2
解决办法
2万
查看次数

是否可以将 `cd` 的命令完成修改为仅显示目录而忽略文件?

当我在 bash 的目录中并按 时cd Space Tab,它会显示目录中的所有内容作为可能。( Show all 1000 possibilities?) 当我在一个有很多常规文件和相对较少目录的目录中时,这真的很麻烦。

那么,是否可以选择cd仅包含目录的自动完成功能?

我知道我可以通过执行获得目录中的目录列表

ls -d */

但我不确定如何从那里开始。

我正在使用CentOS 6.6 Final

ls bash cd-command autocomplete

16
推荐指数
2
解决办法
5080
查看次数

通过 ssh 继续运行脚本

ssh 可以用来运行远程命令。

ssh me@server.com 'long-script.sh'
Run Code Online (Sandbox Code Playgroud)

我运行了一个需要很多时间的长脚本,但我想关闭我的计算机并继续在远程服务器中运行该脚本。我知道如何使用GNU Screen实现这一点,但我需要通过ssh.

我可以在不中断我的脚本的情况下做到这一点吗?

scripting bash ssh remote shell-script

7
推荐指数
1
解决办法
5602
查看次数

如何从保持位置参数的管道中读取?

我正在编写一个小脚本,我想让它通过管道输入或命令行参数工作。

my_function() {
  for i in "$@"; do
    echo "$i"
    echo -----
  done
}

if [ -t 0 ]; then
  my_function "$@"    # command-line arguments
else
  my_function $(cat)  # pipe
fi
Run Code Online (Sandbox Code Playgroud)

这些选项有效:

$ my_script 1 2 3 4
$ echo 1 2 3 4 | my_script
1
-----
2
-----
3
-----
4
-----
Run Code Online (Sandbox Code Playgroud)

这也很好用:

$ my_script 1 "2 3" 4
1
-----
2 3
-----
4
-----
Run Code Online (Sandbox Code Playgroud)

当我试图从管道中保留位置参数时,问题就出现了:

$ echo 1 "2 3" 4 | my_script
1
-----
2 …
Run Code Online (Sandbox Code Playgroud)

pipe shell-script arguments

5
推荐指数
1
解决办法
759
查看次数