是否可以引用中的索引$@?我在GrayCat 的 wiki 中的任何地方都找不到任何可使用的参考,并且高级脚本指南和其他人在修改它之前将其分配给不同的变量。
$ echo ${@[0]}
-bash: ${@[0]}: bad substitution
Run Code Online (Sandbox Code Playgroud)
目标是DRY:第一个参数用于一件事,其余用于其他用途,我想避免复制代码以进行规范化、$@数组或为此创建单独的函数(尽管在此点它可能是最简单的方法)。
说明:目的是修改可变长度 的值,$@使代码更易于调试。当前版本对我来说有点太hacky了,尽管它甚至适用于奇怪的路径,例如
$'--$`\! *@ \a\b\e\E\f\r\t\v\\\"\' \n'
Run Code Online (Sandbox Code Playgroud)
更新:看起来这是不可能的。代码现在同时使用代码和数据重复,但至少它可以工作:
path_common()
{
# Get the deepest common path.
local common_path="$(echo -n "${1:-}x" | tr -s '/')"
common_path="${common_path%x}"
shift # $1 is obviously part of $1
local path
while [ -n "${1+defined}" ]
do
path="$(echo -n "${1}x" | tr -s '/')"
path="${path%x}" …Run Code Online (Sandbox Code Playgroud) 我试着按照Ubuntu的热键/媒体键故障排除指南,并/usr/share/doc/udev/README.keymap.txt.gz做出Fn关键的工作。复制地图文件并修改后,/lib/udev/rules.d/95-keymap.rules我从 中获得了正确的键名sudo /lib/udev/keymap -i input/event4,但它们都没有做任何事情。
我如何确保至少wlan和kbdillumup/kbdillumdown工作?
$ /lib/udev/findkeyboards
AT keyboard: input/event4
$ cat /sys/class/dmi/id/sys_vendor
SAMSUNG ELECTRONICS CO., LTD.
$ cat /sys/class/dmi/id/product_name
90X3A
Run Code Online (Sandbox Code Playgroud)
samsung-90x3a 地图文件:
0xCE prog1 # Fn+F1 Unknown
0x8D prog3 # Fn+F6 Economy mode
0x97 kbdillumdown # Fn+F7 Keyboard background light down
0x96 kbdillumup # Fn+F8 Keyboard background light up
0xD5 wlan # Fn+F12 Wifi on/off
Run Code Online (Sandbox Code Playgroud)
更新:以下信息来自 Arch …
我在终端中滚动时使用Shift+( PgUp/ PgDown)。但它似乎一次滚动一个屏幕(或可能是一半)。我觉得用鼠标逐行滚动终端很舒服,但不喜欢每次都触摸它。谷歌搜索后,我发现Ctrl+ Shift+( Up/ Down) 在其他 Linux 系统上执行此操作。但它似乎不适用于我的 CentOS。
有人可以为这个问题提供最简单的解决方案吗?
我似乎找不到一种方法可以Caps Lock正确地用作撰写键。有些方法是不可移植的,因为它们要求您xev在每个主机上使用类似的方法检测密钥号。其他方法导致 a~/.Xmodmap不能xmodmap多次传递而没有bad keysym类似错误。这使得很难测试对文件的更改。有没有办法做到这一点~/.Xmodmap?
完全启动 Arch Linux 安装介质后是否可以更改屏幕分辨率?我尝试添加vga=795到引导行,并且在将分辨率更改回无法读取的 4K 之前,它工作了几行。而且wiki中的各种 建议似乎都假设我已经设置了网络并且可以安装包。
在默认控制台字体指南的帮助下,我能够使用 设置最大的可用字体setfont /usr/share/consolefonts/iso01-12x22.psfu.gz,但这仍然几乎不可读。
我添加了键盘快捷键来设置全局键盘布局,但是如何为单个应用程序设置它?我想这样做的原因是我已经习惯了 QWERTY 进行游戏,我不想在每个游戏中都花 10 分钟来设置自定义布局。而且我宁愿在切换到其他应用程序(我经常这样做)时不必切换布局,既方便又避免按错误的快捷方式。
我期待
excludes="${excludes:-( ${default_excludes[@]} )}"
Run Code Online (Sandbox Code Playgroud)
如果$excludes为空,则为数组。不幸的是,后面的东西:-被认为是一个字符串。我是否错过了一些语法扭曲,或者我必须使用笨重的
if [ -z "${excludes:-}" ]
then
excludes=( "${default_excludes[@]}" )
fi
Run Code Online (Sandbox Code Playgroud)
?
起初我使用stat -c %i file(帮助检测 jail 的存在),它似乎适用于阳光下的任何 Linux 发行版。在 OS X 上,我不得不使用ls -i file | cut -d ' ' -f 1.
是否有某种方法可以在可跨 *nix 平台移植且不依赖于众所周知的反复无常的 shell 脚本中找到文件的 inode 编号ls?
TL;博士读拱维基上的文章后安装,无线设置和WPA恳求,想下面的建议和论坛帖子的主人,我无法得到任何的以下卡引导拱当连接到我的无线网络Linux 2013-09-01 ISO:
方法 1(默认):
这样做的默认方式是应该只是systemctl stop dhcpcd.service其次wifi-menu。它找到网络:
[SSID] + wpa 10
Run Code Online (Sandbox Code Playgroud)
超时后,它报告连接失败。如果我运行wifi-menu一个第二时间不要求输入密码,但完成当它终于给出了一些调试提示:
Job for netctl@wlp0s29f7u5\x2dBTHub4\x2dGRK6.service failed. See 'systemctl status netctl@wlp0s29f7u5\x2dBTHub4\x2dGRK6.service' and 'journalctl -xn' for details.
Run Code Online (Sandbox Code Playgroud)
前者报告服务已“加载”但未“活动”(字面意思inactive (dead))。后者说:
WPA association/authentication failed for interface 'wlp0s29f7u5'
Run Code Online (Sandbox Code Playgroud)
这是否意味着输入/etc/netctl/wlp0s29f7u5-BTHub4-GRK6错误?我不知道程序什么时候需要 …
我想在.xprofile使用logger. 在 Bash 中,我认为这看起来像这样:
exec 1> >(logger --priority user.notice --tag $(basename $0)) \
2> >(logger --priority user.error --tag $(basename $0))
Run Code Online (Sandbox Code Playgroud)
我将如何以POSIX /bin/sh兼容的方式做到这一点?