我知道这set -e
是我的朋友,以便在出错时退出。但是如果脚本是源代码怎么办,例如从控制台执行一个函数?我不想在错误时关闭控制台,我只想停止脚本并显示错误消息。
我需要检查$吗?手动执行每个命令以使其成为可能?
这是一个myScript.sh
显示问题的示例脚本:
#!/bin/sh
set -e
copySomeStuff()
{
source="$1"
dest="$2"
cp -rt "$source" "$dest"
return 0
}
installStuff()
{
dest="$1"
copySomeStuff dir1 "$dest"
copySomeStuff dir2 "$dest"
copySomeStuff nonExistingDirectory "$dest"
}
Run Code Online (Sandbox Code Playgroud)
该脚本是这样使用的:
$ source myScript.sh
$ installStuff
Run Code Online (Sandbox Code Playgroud)
这只会关闭控制台。显示的错误cp
丢失。
最近我做了通常的更新 + 升级 .. 但是这样做之后,我的网络接口拒绝工作。( 无连接 )
发生了什么 ?我怎样才能打开我的网络接口?...我正在运行一个 debian - 伸展。
(在 debian-derivates 上可能会发生同样的问题,例如 Ubuntu)
今天我想将我的系统从 Debian Wheezy 升级到 Jessie。作为第一步,我认为升级当前的 wheezy-packages 是个好主意:
sudo apt-get update
sudo apt-get upgrade
Run Code Online (Sandbox Code Playgroud)
...但是在“升级”命令中,我收到一个错误(抱歉,我只有德语文本):
Paketlisten werden gelesen... Fertig
E: Der Wert »stable« ist für APT::Default-Release ungültig, da solch eine Veröffentlichung in den Paketquellen nicht verfügbar ist.
Run Code Online (Sandbox Code Playgroud)
错误的翻译可能是:
E: The value "stable" is for APT::Default-Release is invalid, since such a release is not available in the package-sources.
Run Code Online (Sandbox Code Playgroud) 我想通过终端打开 Eclipse,我可以做到这一点,但是当 Eclipse 启动时,它会要求附有屏幕截图的工作区目录,然后我必须指定它,我不想要这个。
当我在终端中传递eclipse命令时,我想传递工作区目录以及 eclipse 命令,然后按提示要求传递“确定”。
提前致谢。