如果索引号是
@或*,则引用数组的所有成员。
当我这样做时:
LIST=(1 2 3)
for i in "${LIST[@]}"; do
echo "example.$i"
done
Run Code Online (Sandbox Code Playgroud)
它给出了想要的结果:
example.1
example.2
example.3
Run Code Online (Sandbox Code Playgroud)
但是当我使用时${LIST[*]},我得到
example.1 2 3
Run Code Online (Sandbox Code Playgroud)
反而。
为什么?
编辑:使用的时候printf,@和*实际做给了相同的结果。
我有一个 Debian 6(64 位)VPS,我似乎无法设置语言环境环境变量 LANG 和 LC_*。(以下所有内容均以 root 身份)。
vps:~# locale -a
C
POSIX
en_US.utf8
nl_NL.utf8
vps:~# locale
LANG=
LANGUAGE=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=
vps:~# cat /etc/default/locale
# File generated by update-locale
LANG=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
LC_COLLATE=POSIX
Run Code Online (Sandbox Code Playgroud)
这应该覆盖通过我的 SSH 客户端提供的语言环境设置,但默认语言环境设置不起作用。
.profile、.bashrc、/etc/environment 和 /etc/profile 不包含任何区域设置。我也没有找到这些环境变量来源的任何其他位置。
me:~# grep "LANG" ~/.profile ~/.bashrc /etc/environment /etc/profile
me:~# grep "LC_" ~/.profile ~/.bashrc /etc/environment /etc/profile
me:~#
Run Code Online (Sandbox Code Playgroud)
我的 SSH 客户端设置也没有生效,而它们在其他 VPS 上生效。在本地,我的 /etc/ssh/ssh_config 中有:
SendEnv LANG LC_*
Run Code Online (Sandbox Code Playgroud)
在 VPS 上,/etc/ssh/sshd_config 包含: …
我有一个包含要下载的网址列表的文本文件。我希望 wget 在下载下一个 url 之前等待。我正在使用
cat urls.txt | xargs -n1 -i wget --wait=30 {}
Run Code Online (Sandbox Code Playgroud)
但是,网址之间没有等待。我可以为此使用 wget 的 --wait 选项吗?其他选择?
当我通过 MC 中的 Shell 链接连接到 VPS 时,命令提示符的位置保留在我的本地框中。我希望能够直接从左侧或右侧面板的位置执行命令(例如 mkdir、tar/untar)。我可以单独 ssh 进入 VPS,但这并不像我如何在 Windows 下的 Total Commander 中使用 SFTP 那样方便:例如,在我的本地机器上的左侧面板中键入命令,使用选项卡切换到右侧面板(远程位置)并直接键入在远程位置执行的命令。
午夜指挥官可以这样做吗?