小编gei*_*rha的帖子

声明一个数组但不定义它?

有很多的导游 在那里展示了如何声明和定义数组

foo[0]=abc 
foo[1]=def
Run Code Online (Sandbox Code Playgroud)

我想要实现的是声明一个数组但不定义它,因为它不必立即定义,在大多数编程语言中它看起来像这样

int bar[100];
Run Code Online (Sandbox Code Playgroud)

这在shell脚本语言中可能吗?

bash

15
推荐指数
1
解决办法
4万
查看次数

使用 autocd 更改路径后自动运行 ls

因此,每次更改目录时,我都希望新路径自动以ls.
如果使用更改路径,有一些解决方案,cd但我从未找到可以在使用该autocd选项更改路径时工作的解决方案。

会很方便,以前有人实现过吗?

command-line bash zsh ls

8
推荐指数
1
解决办法
683
查看次数

.bash_aliases 命令自动完成?

我有一大堆别名命令 .bash_aliases

最通用的例子是

alias apt-update="sudo apt-get update"  
alias apt-upgrade="sudo apt-get dist-upgrade"
Run Code Online (Sandbox Code Playgroud)

但我也有

alias apt-install="sudo apt-get install "
alias a2avail="/etc/apache2/sites-available"
Run Code Online (Sandbox Code Playgroud)

前两个没问题,后两个我想做更强大的;

特别是apt-install我希望自动完成工作。

对于 a2avail,我希望能够输入类似的内容sudo cp a2avail/default a2avail/new并将其作为sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/new

这两种情况中的任何一种都可能吗?

command-line bash alias auto-completion

6
推荐指数
1
解决办法
2438
查看次数

使用 Ctrl + C 取消进程在终端中不起作用

我刚刚给自己买了一台 Ubuntu 服务器,出于某种原因,Ctrl+C不会终止我正在运行的进程。我在两个终端 Cygwin 和 putty 上运行了这个命令,并使用 ssh 登录。

我可以在本地使用该命令,这不是问题,在使用 Solaris 的其他机器上也是如此。我已经阅读了本网站上与此问题相关的其他一些帖子,但是,我的问题仍未解决。

由于该命令在本地工作,我相当有信心这不是 bash 中需要设置的内容。(我在我使用的所有机器上都使用 bash)。我不会尝试使用此命令来关闭像 man 或更少的进程,只是脚本和您希望它可以工作的标准进程。

我也尝试过Ctrl+Z但它不能正常工作所以不确定为什么它不会选择任何这些非常有用的命令。这对我来说非常烦人。

我想尽可能多地了解 Ubuntu,因为我对它的经验很少,如果您有解决方案,您能否包含尽可能多的细节?

这是我的 stty -a:

speed 38400 baud; rows 24; columns 80; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = M-^?; eol2 = M-^?;
swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; …
Run Code Online (Sandbox Code Playgroud)

server command-line bash gnome-terminal

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

为什么“cd ..”在此不起作用,如果

pwd | grep 'database$'
if [ "$?" = 0 ]; then
echo "has db"
cd ..
cd ..
echo "after has db"
fi
Run Code Online (Sandbox Code Playgroud)

执行后我看到

has db
after has db
Run Code Online (Sandbox Code Playgroud)

我仍然在同一个目录中,如何解决它?

bash

2
推荐指数
1
解决办法
701
查看次数

“查找”命令并将其输出通过另一个程序进行管道传输

这不是 Ubuntu 特定的问题,它适用于所有 unix/linux。

我怎样才能运行这样的命令:

 find .  -maxdepth 1 -type d  -print -exec svn info "{}"   | grep URL  \; 
Run Code Online (Sandbox Code Playgroud)

上面的命令没有做我想要的,我似乎无法将 svn 信息的输出通过管道传输到 grep。

这有效,但输出包含的内容比我需要的要多得多:

 find .  -maxdepth 1 -type d  -print -exec svn info "{}"  \; 
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

command-line

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

标签 统计

bash ×5

command-line ×4

alias ×1

auto-completion ×1

gnome-terminal ×1

ls ×1

server ×1

zsh ×1