有没有办法列出 debootstrap 将要下载的软件包?另外,有没有办法告诉 debootstrap 下载用户指定的软件包列表?
该猛砸FAQ说
如果您要验证一个简单的“数字字符串”,则可以使用 glob 来完成:
# Bash
if [[ $foo = *[!0-9]* ]]; then
echo "'$foo' has a non-digit somewhere in it"
else
echo "'$foo' is strictly numeric"
fi
Run Code Online (Sandbox Code Playgroud)
我想,“天哪,这看起来不错而且简单”。然后我将它完全粘贴到脚本中,除了我在第一个 echo 之后添加了“exit 1”并更改$foo为$1,因此它看起来像
if [[ $1 = *[!0-9]* ]]; then
echo "'$1' has a non-digit somewhere in it"
exit 1
else
echo "'$1' is strictly numeric"
fi
Run Code Online (Sandbox Code Playgroud)
然后我尝试运行它并得到
$ sh foo.sh bar
bar
foo.sh: 6: [[: not found
'bar' is strictly numeric
Run Code Online (Sandbox Code Playgroud)
我是 Bash 文盲,我很惭愧,所以我不知道这里有什么问题。我的印象是, …
我需要在文件的开头添加一行。有问题的线路是
\def\submit{}
Run Code Online (Sandbox Code Playgroud)
我有一个使用sed. 我不知道sed,但它是从网上的某个地方得到的,但它工作得不太正确,因为它在行的开头插入了一个不需要的空格。虽然这并不重要,但我认为我最好这样做。
sed -i '1i\ \\\def\\\submit{}' 'dirname/filename'
Run Code Online (Sandbox Code Playgroud)
从我的阅读看来,所有这些额外的反斜杠都需要转义外壳。也欢迎使用其他解决方案,但如果可能的话,我想要一个相对紧凑的单内衬。谢谢。
这个问题,在 Linux 中通过终端在文件的开头插入文本与 sed类似,但不能帮助我调试我的表达式。
编辑:我接受了@Jonathan 的回答,因为它解释了我以前的方法有什么问题。但是,我还添加了一个答案。
有没有人想出如何在 Debian wheezy 上安装/反向移植 Debian Handbrake 软件包?目前 Debian 中唯一的 Handbrake 版本处于实验阶段,并且依赖项在 wheezy 上不可用,因此我无法轻松重建它。特别是libav使用的版本是实验版本。
非官方的deb-multimedia存储库是可能的,但我过去曾遇到过其软件包与 Debian 不兼容的问题。也可能使用 Ubuntu PPA。
但是 Linux 多媒体是一个复杂的烂摊子,我宁愿不要把它搞得一团糟。
根据在表代码的源极线在维基百科文章,的Debian的源代码行的数量迅速增长到超过324米的LoC 2009(代码的行):
另一方面:
我在用 mplayer 播放视频时随机/实验性地按下按钮。我做的一些事情导致视频静音。然后我退出了视频并尝试了一个不同的视频,但那个也被静音了。我不认为 mplayer 会在调用中保存其设置,除了 中的设置.mplayer,我当然没有在那里保存任何设置,现在我也没有看到任何可能导致这种情况的设置。
vlc 和 xine 都有声音,所以这个问题似乎是 mplayer 特有的。
知道问题是什么吗?重新启动很可能会修复它,如果没有选择,我会这样做,但我想知道问题是什么以供将来参考。
我没有编程经验,但我了解 shell 脚本在理论上是如何工作的。使脚本可执行只有两个重要步骤,
#!/path/to/interpreter,来告诉 shell 如何解释脚本的内容chmod
+x filename。到目前为止,我可以理解它,但是包含许多文件并压缩在一个.tar.gz包中的“真实”程序与这种安装有何不同,Linux 需要在幕后执行哪些重要步骤才能使程序可执行?或者简而言之:在 Linux 中安装的真正意义是什么?
我使用什么过程从基于 Debian/Ubuntu 的发行版的 ISO 映像中提取 Debian 二进制包?
我有一个看起来像的目录
$ ls
Broad_hapmap3_r2_Affy6_cels_excluded.tgz DINGO.tgz GIGAS.tgz index.html IONIC.tgz passing_cels_sample_map.txt SCALE.tgz
CHEAP.tgz EPODE.tgz HOMOS.tgz index.html?C=M;O=A LOVED.tgz PICUL.tgz SHELF.tgz
CORER.tgz excluded_cels_md5.txt HUFFS.tgz index.html?C=N;O=D NIGHS.tgz POSIT.tgz SLOTH.tgz
CUPID.tgz excluded_cels_sample_map.txt HUSKS.tgz index.html?C=S;O=A passing_cels_md5.txt SAKES.tgz TESLA.tgz
Run Code Online (Sandbox Code Playgroud)
我想用一个命令解压缩所有与扩展名 *.tgz 匹配的文件,除了 Broad_hapmap3_r2_Affy6_cels_excluded.tgz。
我可以
ls *.tgz | xargs -n1 tar zxvf
Run Code Online (Sandbox Code Playgroud)
对于所有 *tgz 文件,但排除其中一部分的好方法是什么?在这种情况下,从网上阅读可能会发现 find ,但这似乎有点矫枉过正。预先感谢。
附录:我也对不排除文件的问题的替代方法感兴趣。
我需要递归查找包含特定字符串的所有文件,以便我可以将新文件复制到旧文件上。例如:
如果文件具有字符串“替换我”:
找到文件的完整路径:
/dir/of/file/filename.php
/dir/of/different/file/filename.php
Run Code Online (Sandbox Code Playgroud)用我的新filename.php文件替换文件。
这听起来很简单,但我浪费了几个小时却一无所获。