我想以更易读的方式显示我的 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) 当我在 bash 的目录中并按 时cd Space Tab,它会显示目录中的所有内容作为可能。( Show all 1000 possibilities?) 当我在一个有很多常规文件和相对较少目录的目录中时,这真的很麻烦。
那么,是否可以选择cd仅包含目录的自动完成功能?
我知道我可以通过执行获得目录中的目录列表
ls -d */
但我不确定如何从那里开始。
我正在使用CentOS 6.6 Final。
ssh 可以用来运行远程命令。
ssh me@server.com 'long-script.sh'
Run Code Online (Sandbox Code Playgroud)
我运行了一个需要很多时间的长脚本,但我想关闭我的计算机并继续在远程服务器中运行该脚本。我知道如何使用GNU Screen实现这一点,但我需要通过ssh.
我可以在不中断我的脚本的情况下做到这一点吗?
我正在编写一个小脚本,我想让它通过管道输入或命令行参数工作。
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) shell-script ×3
bash ×2
arguments ×1
autocomplete ×1
cd-command ×1
indentation ×1
ls ×1
path ×1
pipe ×1
remote ×1
scripting ×1
shell ×1
ssh ×1
standard ×1