我正在编写一个 shell 脚本,我需要打印脚本的第 n 个参数。
例如,假设我们有n=3
并且我们的脚本以足够的参数运行。现在我需要打印第n
th 个参数,即$3
.
但是如果n=2
,我们会打印参数$2
。
我不想使用if
语句。我想做类似的事情
echo $($n)
但是上面的方法并不能按照我需要的方式工作。
我正在编写一个 shell 脚本,我需要打印脚本的第 n 个参数。
例如,假设我们有n=3
并且我们的脚本以足够的参数运行。现在我需要打印第n
th 个参数,即$3
.
但是如果n=2
,我们会打印参数$2
。
我不想使用if
语句。我想做类似的事情
echo $($n)
但是上面的方法并不能按照我需要的方式工作。
有什么方法可以从*.tgz
NetBSD 中的软件包文件安装软件?或者确实在具有类似包管理器的操作系统中,例如 OpenBSD 或 FreeBSD?
例如,我可以使用以下命令在 NetBSD 上安装 nano 编辑器:
pkgin nano
pkg install nano
(我可以在 FreeBSD 上使用类似的命令来做同样的事情。)
如果我直接从操作系统的包存储库下载包文件会怎样,这将是一个类似的 URL http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/7.1/All/nano-2.8.7.tgz
?
像这样从存储库中手动获取包文件后,现在有什么方法可以直接从它安装 nano 吗?我怎么做?
我刚刚在我的旧笔记本电脑上安装了NetBSD 7.1.1 ( i386 ) 。
在安装过程中,我无法安装 pgkin(我不知道为什么),所以我跳过了它,现在我在没有 pkgin 的笔记本电脑上安装了 NetBSD 7.1.1。
我的问题是“如何在 NetBSD (i386) 上安装 pkgin? ”
我找到了这个 Unixmen 教程并遵循了它:
我试过了 :
#export PKG_PATH="http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/amd64/6.0_BETA_current/All/"
# pkg_add -v pkgin
我得到了:
pkg_add: Can't process ftp://ftp.netbsd.org:80/pub/pkgsrc/packages/NetBSD/amd64/6.0_BETA_current/All/%0d/pkgin*: Not Found
pkg_add: no pkg found for 'pkgin',sorry.
pkg_add: 1 package addition failed
我知道这是一个错误的命令,因为这个 ftp 地址是针对 amd64 的,而我的笔记本电脑和这个 NetBSD 是 i386。(我找不到 i386 的正确命令)
我也遵循了pkgin.net的指示,我做到了
git clone https://github.com/NetBSDfr/pkgin.git
在另一台计算机上并将输出(这是一个文件夹名称 pkgin)复制到我的 NetBSD(我的 NetBSD 没有“git”命令)
然后我做了:
./configure --prefix=/usr/pkg --with-libraries=/usr/pkg/lib --with-includes=/usr/pkg/include
接着 :
make
但我得到了:
# compile pkgin/summary.o
gcc -O2 -std=gnu99 -Wall -Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith -Wno-sign-compare -Wno-traditional -Wa,--fatal-warnings -Wreturn-type -Wswitch -Wshadow -Werror -DPKGIN_VERSION=\""0.9.4 for NetBSD-7.1.1 i386"\" -DNETBSD -g -DLOCALBASE=\"/usr/local\" -DPKG_SYSCONFDIR=\"/usr/local/etc\" -DPKG_DBDIR="\"/var/db/pkg\"" -DDEF_LOG_DIR="\"/var/db/pkg\"" -DPKGIN_DB=\"/var/db/pkgin\" -DPKGTOOLS=\"/usr/local/sbin\" -DHAVE_CONFIG_H -D_LARGEFILE_SOURCE -D_LARGE_FILES -DCHECK_MACHINE_ARCH=\"i386\" -Iexternal -I. -I/usr/local/include -c summary.c
*** Error code 1
Stop.
make: stopped in /root/pkgin
我认为由于依赖关系而发生此错误。(在pkgin.net中提到)但仍然不知道如何安装这些依赖项。
编辑:我发现“ http://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/i386/7.1.1/All/ ”但它仍然说
no pkg fond for 'pkgin', sorry
解决了:
** 我通过编写 7.1 而不是 7.1.1 解决了这个问题**
我从这里下载了 Minix 3,并使用 Rufus(在 Windows 操作系统中)将其写入 USB 闪存驱动器。当它启动时它说:
->NETBSD MBR boot
->Errror No active partition
我在 google 中搜索了“活动分区”,并找到了两种使用实时 Linux 解决此问题的方法。其中之一是:
->sudo fdisk /dev/sdxy
->use the "a" option
->and then "w" it
另一种方法是在 Ubuntu 中使用 Gparted(在“Ubuntu live”中),然后:
->Right-click the Primary partition you wish to make Active and select Manage Flags.
->In Manage Flags on ..., tick (to enable) the boot check box to make the
分区活动。
但是这些方法都不起作用,我仍然有问题。我的笔记本电脑是LGX13。
(但是,这没有任何区别,因为我在其他笔记本电脑上启动了 Minix,但问题仍然存在)。
其他人有这个问题吗?
你是怎么解决的?
有没有其他方法可以激活分区?