AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-163956

ka3ak's questions

Martin Hope
ka3ak
Asked: 2023-01-26 06:10:34 +0800 CST

无法以特定格式设置日期

  • 6

使用以下命令获取日期没有问题:

$ date '+%d%m%y %H%M%S.%N'
250123 170411.504761505

但是不可能使用相同的格式设置它:

sudo date '+%d%m%y %H%M%S.%N' -u -s "250123 170411.504761505"
date: invalid date ‘250123 170411.504761505’

看起来小时、分钟和秒之间的分隔符是必需的。为什么?手册页似乎没有提到它。

它提到:

%H     hour (00..23)
%M     minute (00..59)
%S     second (00..60)

因此,如果源字符串中有 6 位数字,它应该能够毫无问题地解析 IMO。

我认为纳米部分混淆了它,但没有:

$sudo date '+%d%m%y %H%M%S' -u -s "250123 170411"
date: invalid date ‘250123 170411’
bash
  • 1 个回答
  • 53 Views
Martin Hope
ka3ak
Asked: 2023-01-24 05:32:18 +0800 CST

使用命名管道作为 netcat 的数据源

  • 6

我想将 netcat 用作从命名管道读取数据的 TCP 服务器。为此,我做了以下事情:

步骤 1. 创建一个管道和使用它作为源的服务器

mkfifo /tmp/all.pipe
nc -k -l 8080 < /tmp/all.pipe

第 2 步. 创建一个持续读取数据的客户端:

while true; do
    sleep 1;
    echo "Check connection";
    while IFS= read -r line; do
        printf "$line";
    done < /dev/tcp/localhost/8080;
done

步骤 3. 将一些数据写入管道:

echo "hello" > /tmp/all.pipe

执行这 3 个步骤后,客户端的输出为:

...
bash: connect: Connection refused
bash: /dev/tcp/localhost/8080: Connection refused
Check connection
bash: connect: Connection refused
bash: /dev/tcp/localhost/8080: Connection refused
Check connection
hello

但是,当我再次执行此后的步骤 3 时,输出没有改变。看起来它发生了,因为连接仍然处于活动状态,但新数据没有从管道传递到 nc,然后再传递到客户端。为什么?可以做些什么来实现它?

bash
  • 1 个回答
  • 31 Views
Martin Hope
ka3ak
Asked: 2021-12-02 00:46:49 +0800 CST

使用 jq 时正确转义通配符

  • 1

以下命令有效:

$ echo '{ "a": [ { "b": "1" }, { "b": "2" } ] }' | jq -r '.a[0].b'
1

但是,如果我尝试获取下所有b元素的值,则会a收到以下错误:

$ echo '{ "a": [ { "b": "1" }, { "b": "2" } ] }' | jq -r '.a[*].b'
jq: error: syntax error, unexpected '*' (Unix shell quoting issues?) at <top-level>, line 1:
.a[*].b   
jq: 1 compile error

我应该如何逃避通配符?我已经尝试了几种变体但没有成功。

根据https://support.smartbear.com/alertsite/docs/monitors/api/endpoint/jsonpath.html#:~:text=JSONPath%20is%20a%20query%20language,使用通配符作为数组索引是一个有效的选项, that%20need%20to%20be%20verified。

bash wildcards
  • 1 个回答
  • 547 Views
Martin Hope
ka3ak
Asked: 2020-02-02 03:13:44 +0800 CST

无法将 Live USB 驱动器安装为读/写

  • 4

不知道为什么我不能将 Live USB 驱动器安装为可写。

$ sudo mount -o rw /dev/sdd /tmp/usb/
mount: /tmp/usb: WARNING: device write-protected, mounted read-only.
$ mount|grep sdd
/dev/sdd on /tmp/usb type iso9660 (ro,relatime,nojoliet,check=s,map=n,blocksize=2048)

带有 Kubuntu 18.04 的 Live USB 是使用usb-creator-kde实用程序创建的。我不仅想将它用作 Live USB,还想用作存储设备。我已经尝试对其进行格式化,然后将其挂载为可写。有用。

所以有什么问题?显然不是设备。但与此同时,我记得通过将该实用程序应用到其他笔式驱动器来创建 Live USB,并且它们被安装为可写完美。

PS驱动器上没有开关

mount live-usb
  • 1 个回答
  • 4334 Views
Martin Hope
ka3ak
Asked: 2018-11-25 23:45:34 +0800 CST

我可以使用 << EOF 但让用户完成输入吗

  • 1

对此的需要来自下面的脚本。它使用 anyconnect 的 vpn 实用程序连接到远程 PC。首先,它要求输入一次性密码,连接,启动 RDP 客户端,并在 RPD 客户端应用程序关闭后断开连接。

if [ $# == 1 ]; then
    ONE_TIME_PWD=$1;
else
    printf "Enter the one-time password: ";
    read ONE_TIME_PWD;
fi

vpn -s connect <domain> << EOF
<user>
<pin>$ONE_TIME_PWD
EOF

# Use some RDP client here like xfreerdp or rdesktop

vpn -s disconnect <domain>

问题是一次性密码在执行过程中可能会改变vpn -s connect <domain>。<pin>所以我很好奇是否可以更改脚本,以便它让我在自动插入后输入一次性密码?我已经尝试head -c -1删除最后一个换行符,但输入仍然完成。不基于 EOF 的任何其他解决方案都是可以接受的。

bash here-document
  • 2 个回答
  • 191 Views
Martin Hope
ka3ak
Asked: 2018-11-23 11:05:17 +0800 CST

无法与 rdesktop 连接,但可以与 remmina 连接

  • 0

我不明白使用 rdesktop 登录失败的原因是什么。运行命令后:

rdesktop -u "user" -p "pwd" ip-address

它向我显示远程 Windows PC 的屏幕,并显示“用户名或密码不正确”消息。在我按下按钮重试登录后,我可以看到在相应的文本字段中已经输入了正确的电脑名称。我输入密码,它再次向我显示错误消息。但是密码是正确的。

rdesktop 的版本是 1.8.3

当我与 remmina 连接时,没有这样的问题。如果您无法解释为什么会这样,请您至少推荐一个在命令行中运行良好的 RDP 客户端。

rdesktop remmina
  • 1 个回答
  • 897 Views
Martin Hope
ka3ak
Asked: 2018-10-21 06:22:14 +0800 CST

嵌套大括号扩展和命令替换

  • 6

我想创建一个简单的 bash 脚本来检查目录是否包含名称中包含从 1 到 N 的数字的所有文件。

# Creating some files for testing
$ cd /tmp/
$ mkdir test
$ touch test/a01x.dat
$ touch test/b02y.dat

# Display dir contents
$ ls test/*{01,02}*
test/a01x.dat  test/b02y.dat

但是使用seq命令生成数字会导致以下结果:

$ ls test/*{$(seq -s , -f "%02g" 1 2)}*
ls: cannot access 'test/*{01,02}*': No such file or directory

我知道通过用单引号将路径括起来来运行命令必须导致错误,因为通配符不会扩展

$ ls 'test/*{01,02}*'

但我没有使用它们。问题是什么?

bash ls
  • 1 个回答
  • 893 Views
Martin Hope
ka3ak
Asked: 2018-06-21 08:08:22 +0800 CST

处理时遇到错误:/var/cache/apt/archives/linux-image

  • 2

无法更新我的系统:

$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree       
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
 linux-image-extra-4.4.0-124-generic : Depends: linux-image-4.4.0-124-generic but it is not installed
 linux-image-extra-4.4.0-128-generic : Depends: linux-image-4.4.0-128-generic but it is not installed
 linux-image-generic : Depends: linux-image-4.4.0-128-generic but it is not installed
 linux-signed-image-4.4.0-124-generic : Depends: linux-image-4.4.0-124-generic (= 4.4.0-124.148) but it is not installed
 linux-signed-image-4.4.0-128-generic : Depends: linux-image-4.4.0-128-generic (= 4.4.0-128.154) but it is not installed
E: Unmet dependencies. Try using -f.

之后我运行了上面推荐的命令:

$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  app-install-data-partner ca-certificates-java freespacenotifier g++-4.8 gcc-4.8-base:i386 gcc-4.9-base:i386 gcj-4.8-jre-lib gir1.2-soup-2.4 git-bzr git-remote-bzr gstreamer0.10-nice
  gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-pulseaudio gstreamer0.10-x gstreamer1.0-plugins-base:i386 iproute kde-base-artwork kde-config-pimactivity kde-runtime-dbg kde-style-oxygen
  kde-workspace-kgreet-plugins kdelibs5-dbg kubuntu-debug-installer latex-beamer libaccounts-qt1 libakonadi-kabc4 libakonadi-kcal4 libakonadi-notes4 libakonadi-socialutils4 libass4 libatk-wrapper-java
  libatk-wrapper-java-jni libavcodec56 libavresample2 libavutil54 libbaloopim4 libbaloowidgets4 libbind9-90 libbluedevil1 libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common
  libboost-date-time1.54.0 libboost-program-options1.54.0 libboost-python1.54.0 libboost-system1.54.0 libboost-thread1.54.0 libbsd0:i386 libc6-dbg libcalendarsupport4 libcdparanoia0:i386 libcdr-0.0-0
  libcgmanager0:i386 libclass-load-perl libcmis-0.4-4 libcolord1 libcolorhug1 libcrypt-passwdmd5-perl libdata-optlist-perl libdns100 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libechonest2.1 libedit2:i386 libegl1-mesa-lts-wily libelf1:i386 libelfg0 libestools2.1 libevent-2.0-5 libexiv2-12 libexporter-lite-perl libfarstream-0.1-0 libgail18
  libgbm1-lts-wily libgcj14 libgcrypt11:i386 libgif4 libgl1-mesa-dri:i386 libgl1-mesa-dri-lts-wily libgl1-mesa-dri-lts-wily:i386 libgl1-mesa-glx:i386 libgl1-mesa-glx-lts-wily libgl1-mesa-glx-lts-wily:i386
  libglapi-mesa:i386 libglapi-mesa-lts-wily libglapi-mesa-lts-wily:i386 libgle3 libgles1-mesa-lts-wily libgles2-mesa libgles2-mesa-lts-wily libglew1.10 libglib2.0-bin libgnome-2-0 libgnome2-0 libgnome2-bin
  libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libgnustep-gui0.22 libgnutls26:i386 libgpgme++2v5 libgphoto2-port10
  libgrantlee-core0 libgrantlee-gui0 libgraphicsmagick++3 libgraphicsmagick3 libgstreamer-plugins-base0.10-0 libgstreamer-plugins-base1.0-0:i386 libgstreamer0.10-0 libgstreamer1.0-0:i386 libgtk-vnc-1.0-0
  libgtksourceview2.0-0 libgtksourceview2.0-common libgtop2-7 libice-dev libicu52 libidl-2-0 libidl-common libimobiledevice4 libindicate-qt1 libindicate5 libio-stringy-perl libisc95 libisccc90 libisccfg90
  libisl10 libjasper1:i386 libjavascriptcoregtk-3.0-0 libjpeg-progs libjpeg9 libkactivities-models1 libkalarmcal2 libkateinterfaces4 libkblog4 libkcal4 libkdcraw-data libkdcraw23 libkdecorations4abi1
  libkdepimdbusinterfaces4 libkdgantt2-0 libkfbapi1 libkgapi2-2 libkimap4 libkimproxy4 libkmanagesieve4 libkmbox4 libkontactinterface4 libkpgp4 libkrossui4 libkscreen1 libkscreensaver5 libksieve4
  libksignalplotter4 libktnef4 libkutils4 libkwineffects1abi4 libkwinglesutils1 libkwinglutils1abi3 liblept4 liblightdm-gobject-1-0 liblightdm-qt-3-0 liblinear1 libllvm3.6 libllvm3.6:i386 libllvm5.0:i386
  liblwres90 libmagickcore5 libmagickcore5-extra libmagickwand5 libmbim-glib0 libmikmod2 libmodemmanagerqt1 libmspub-0.0-0 libmusicbrainz5-0 libmysqlclient18 libmysqlclient18:i386 libnepomukcleaner4
  libnetworkmanagerqt1 libnih-dbus1:i386 libnih1:i386 libnm-glib-vpn1 liboath0 libokularcore4 libopenobex2 libopus0:i386 liborbit-2-0 liborbit2 liborc-0.4-0:i386 liborcus-0.6-0 libparse-debcontrol-perl
  libparted0debian1 libpciaccess0:i386 libpimactivity4 libplist1 libpoppler44 libpostproc52 libprocessui4a libprotobuf8 libpth20 libpthread-stubs0-dev libqgpgme1 libqmi-glib0 libqoauth1 libqpdf13 libqpdf17
  libqt4-dbg libqt4-opengl:i386 libqtglib-2.0-0 libqtwebkit4:i386 libraw9 libsctp1 libsendlater4 libsensors4:i386 libservlet3.0-java libsignon-qt1 libsm-dev libsoundtouch0 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++-4.8-dev libsvga1 libswscale2 libswscale3 libsystemd-daemon0 libsystemd-login0 libtelepathy-logger-qt4-1 libtheora0:i386 libtorrent-rasterbar7 libts-0.0-0 libtxc-dxtn-s2tc0:i386 libupower-glib1
  libusbmuxd2 libva-glx1 libvisio-0.0-0 libvisual-0.4-0:i386 libvte-common libvte9 libwebkitgtk-3.0-0 libwebkitgtk-3.0-common libwpd-0.9-9 libwpg-0.2-2 libwps-0.2-2 libwxbase2.8-0 libwxgtk2.8-0 libx11-dev
  libx11-doc libx11-xcb1:i386 libx264-142 libxatracker2-lts-wily libxau-dev libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb-util0 libxcb1-dev libxdmcp-dev
  libxen-4.4 libxklavier16 libxml2:i386 libxshmfence1:i386 libxslt1.1:i386 libxt-dev libxtables10 libxv1:i386 libxxf86vm1:i386 libzip2 lightdm lightdm-kde-greeter linux-headers-4.2.0-42
  linux-headers-4.2.0-42-generic linux-headers-4.4.0-124 linux-headers-4.4.0-124-generic linux-headers-generic-lts-wily linux-image-4.2.0-42-generic linux-image-4.4.0-124-generic
  linux-image-extra-4.2.0-42-generic linux-image-extra-4.4.0-124-generic linux-image-generic-lts-wily linux-signed-image-4.2.0-42-generic linux-signed-image-4.4.0-124-generic lksctp-tools m17n-contrib mp3info
  obex-data-server oxygen-cursor-theme pgf phonon-backend-gstreamer1.0 polkit-kde-1 python-blinker python-cups python-dbus-dev python-debian python-dirspec python-gconf python-gnome2 python-gtk-vnc
  python-gtksourceview2 python-imaging python-jwt python-lzma python-oauthlib python-parsley python-pexpect python-pil python-psutil python-ptyprocess python-pyorbit python-renderpm python-reportlab
  python-reportlab-accel python-twisted python-txsocksx python-ubuntu-sso-client python-urlgrabber python-vte python-xapian rtmpdump scdaemon shared-desktop-ontologies syslinux-themes-debian
  syslinux-themes-debian-wheezy texlive-luatex torsocks tsconf ubuntu-sso-client wmctrl x11proto-core-dev x11proto-input-dev x11proto-kb-dev xfonts-mathml xorg-sgml-doctools xscreensaver-data
  xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra xscreensaver-screensaver-bsod xserver-xorg-input-evdev-lts-wily xserver-xorg-input-mouse-lts-wily xserver-xorg-input-synaptics-lts-wily
  xserver-xorg-input-vmmouse-lts-wily xserver-xorg-input-wacom-lts-wily xserver-xorg-video-ati-lts-wily xserver-xorg-video-cirrus-lts-wily xserver-xorg-video-fbdev-lts-wily xserver-xorg-video-intel-lts-wily
  xserver-xorg-video-mach64-lts-wily xserver-xorg-video-mga-lts-wily xserver-xorg-video-neomagic-lts-wily xserver-xorg-video-nouveau-lts-wily xserver-xorg-video-openchrome-lts-wily
  xserver-xorg-video-qxl-lts-wily xserver-xorg-video-r128-lts-wily xserver-xorg-video-radeon-lts-wily xserver-xorg-video-savage-lts-wily xserver-xorg-video-siliconmotion-lts-wily
  xserver-xorg-video-sisusb-lts-wily xserver-xorg-video-tdfx-lts-wily xserver-xorg-video-trident-lts-wily xserver-xorg-video-vesa-lts-wily xserver-xorg-video-vmware-lts-wily xtrans-dev xul-ext-ubufox
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  linux-image-4.4.0-124-generic linux-image-4.4.0-128-generic
Suggested packages:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
The following NEW packages will be installed:
  linux-image-4.4.0-124-generic linux-image-4.4.0-128-generic
0 upgraded, 2 newly installed, 0 to remove and 42 not upgraded.
87 not fully installed or removed.
Need to get 0 B/44,2 MB of archives.
After this operation, 136 MB of additional disk space will be used.
Do you want to continue? [Д/н] y
(Reading database ... 441166 files and directories currently installed.)
Preparing to unpack .../linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb ...
Examining /etc/kernel/preinst.d/
Done.
Unpacking linux-image-4.4.0-128-generic (4.4.0-128.154) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-128-generic' to '/boot/vmlinuz-4.4.0-128-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
Preparing to unpack .../linux-image-4.4.0-124-generic_4.4.0-124.148_amd64.deb ...
Examining /etc/kernel/preinst.d/
Done.
Unpacking linux-image-4.4.0-124-generic (4.4.0-124.148) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-124-generic_4.4.0-124.148_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-124-generic' to '/boot/vmlinuz-4.4.0-124-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-124-generic /boot/vmlinuz-4.4.0-124-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 4.4.0-124-generic /boot/vmlinuz-4.4.0-124-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-124-generic /boot/vmlinuz-4.4.0-124-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb
 /var/cache/apt/archives/linux-image-4.4.0-124-generic_4.4.0-124.148_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

然后我尝试运行:

$ sudo apt-get clean

接着:

$ sudo apt-get -f install

但没有结果

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  app-install-data-partner ca-certificates-java freespacenotifier g++-4.8 gcc-4.8-base:i386 gcc-4.9-base:i386 gcj-4.8-jre-lib gir1.2-soup-2.4 git-bzr git-remote-bzr gstreamer0.10-nice
  gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-pulseaudio gstreamer0.10-x gstreamer1.0-plugins-base:i386 iproute kde-base-artwork kde-config-pimactivity kde-runtime-dbg kde-style-oxygen
  kde-workspace-kgreet-plugins kdelibs5-dbg kubuntu-debug-installer latex-beamer libaccounts-qt1 libakonadi-kabc4 libakonadi-kcal4 libakonadi-notes4 libakonadi-socialutils4 libass4 libatk-wrapper-java
  libatk-wrapper-java-jni libavcodec56 libavresample2 libavutil54 libbaloopim4 libbaloowidgets4 libbind9-90 libbluedevil1 libbonobo2-0 libbonobo2-common libbonoboui2-0 libbonoboui2-common
  libboost-date-time1.54.0 libboost-program-options1.54.0 libboost-python1.54.0 libboost-system1.54.0 libboost-thread1.54.0 libbsd0:i386 libc6-dbg libcalendarsupport4 libcdparanoia0:i386 libcdr-0.0-0
  libcgmanager0:i386 libclass-load-perl libcmis-0.4-4 libcolord1 libcolorhug1 libcrypt-passwdmd5-perl libdata-optlist-perl libdns100 libdrm-amdgpu1:i386 libdrm-intel1:i386 libdrm-nouveau2:i386
  libdrm-radeon1:i386 libdrm2:i386 libechonest2.1 libedit2:i386 libegl1-mesa-lts-wily libelf1:i386 libelfg0 libestools2.1 libevent-2.0-5 libexiv2-12 libexporter-lite-perl libfarstream-0.1-0 libgail18
  libgbm1-lts-wily libgcj14 libgcrypt11:i386 libgif4 libgl1-mesa-dri:i386 libgl1-mesa-dri-lts-wily libgl1-mesa-dri-lts-wily:i386 libgl1-mesa-glx:i386 libgl1-mesa-glx-lts-wily libgl1-mesa-glx-lts-wily:i386
  libglapi-mesa:i386 libglapi-mesa-lts-wily libglapi-mesa-lts-wily:i386 libgle3 libgles1-mesa-lts-wily libgles2-mesa libgles2-mesa-lts-wily libglew1.10 libglib2.0-bin libgnome-2-0 libgnome2-0 libgnome2-bin
  libgnome2-common libgnomecanvas2-0 libgnomecanvas2-common libgnomeui-0 libgnomeui-common libgnomevfs2-0 libgnomevfs2-common libgnustep-gui0.22 libgnutls26:i386 libgpgme++2v5 libgphoto2-port10
  libgrantlee-core0 libgrantlee-gui0 libgraphicsmagick++3 libgraphicsmagick3 libgstreamer-plugins-base0.10-0 libgstreamer-plugins-base1.0-0:i386 libgstreamer0.10-0 libgstreamer1.0-0:i386 libgtk-vnc-1.0-0
  libgtksourceview2.0-0 libgtksourceview2.0-common libgtop2-7 libice-dev libicu52 libidl-2-0 libidl-common libimobiledevice4 libindicate-qt1 libindicate5 libio-stringy-perl libisc95 libisccc90 libisccfg90
  libisl10 libjasper1:i386 libjavascriptcoregtk-3.0-0 libjpeg-progs libjpeg9 libkactivities-models1 libkalarmcal2 libkateinterfaces4 libkblog4 libkcal4 libkdcraw-data libkdcraw23 libkdecorations4abi1
  libkdepimdbusinterfaces4 libkdgantt2-0 libkfbapi1 libkgapi2-2 libkimap4 libkimproxy4 libkmanagesieve4 libkmbox4 libkontactinterface4 libkpgp4 libkrossui4 libkscreen1 libkscreensaver5 libksieve4
  libksignalplotter4 libktnef4 libkutils4 libkwineffects1abi4 libkwinglesutils1 libkwinglutils1abi3 liblept4 liblightdm-gobject-1-0 liblightdm-qt-3-0 liblinear1 libllvm3.6 libllvm3.6:i386 libllvm5.0:i386
  liblwres90 libmagickcore5 libmagickcore5-extra libmagickwand5 libmbim-glib0 libmikmod2 libmodemmanagerqt1 libmspub-0.0-0 libmusicbrainz5-0 libmysqlclient18 libmysqlclient18:i386 libnepomukcleaner4
  libnetworkmanagerqt1 libnih-dbus1:i386 libnih1:i386 libnm-glib-vpn1 liboath0 libokularcore4 libopenobex2 libopus0:i386 liborbit-2-0 liborbit2 liborc-0.4-0:i386 liborcus-0.6-0 libparse-debcontrol-perl
  libparted0debian1 libpciaccess0:i386 libpimactivity4 libplist1 libpoppler44 libpostproc52 libprocessui4a libprotobuf8 libpth20 libpthread-stubs0-dev libqgpgme1 libqmi-glib0 libqoauth1 libqpdf13 libqpdf17
  libqt4-dbg libqt4-opengl:i386 libqtglib-2.0-0 libqtwebkit4:i386 libraw9 libsctp1 libsendlater4 libsensors4:i386 libservlet3.0-java libsignon-qt1 libsm-dev libsoundtouch0 libsqlite3-0:i386 libssl1.0.0:i386
  libstdc++-4.8-dev libsvga1 libswscale2 libswscale3 libsystemd-daemon0 libsystemd-login0 libtelepathy-logger-qt4-1 libtheora0:i386 libtorrent-rasterbar7 libts-0.0-0 libtxc-dxtn-s2tc0:i386 libupower-glib1
  libusbmuxd2 libva-glx1 libvisio-0.0-0 libvisual-0.4-0:i386 libvte-common libvte9 libwebkitgtk-3.0-0 libwebkitgtk-3.0-common libwpd-0.9-9 libwpg-0.2-2 libwps-0.2-2 libwxbase2.8-0 libwxgtk2.8-0 libx11-dev
  libx11-doc libx11-xcb1:i386 libx264-142 libxatracker2-lts-wily libxau-dev libxcb-dri2-0:i386 libxcb-dri3-0:i386 libxcb-glx0:i386 libxcb-present0:i386 libxcb-sync1:i386 libxcb-util0 libxcb1-dev libxdmcp-dev
  libxen-4.4 libxklavier16 libxml2:i386 libxshmfence1:i386 libxslt1.1:i386 libxt-dev libxtables10 libxv1:i386 libxxf86vm1:i386 libzip2 lightdm lightdm-kde-greeter linux-headers-4.2.0-42
  linux-headers-4.2.0-42-generic linux-headers-4.4.0-124 linux-headers-4.4.0-124-generic linux-headers-generic-lts-wily linux-image-4.2.0-42-generic linux-image-4.4.0-124-generic
  linux-image-extra-4.2.0-42-generic linux-image-extra-4.4.0-124-generic linux-image-generic-lts-wily linux-signed-image-4.2.0-42-generic linux-signed-image-4.4.0-124-generic lksctp-tools m17n-contrib mp3info
  obex-data-server oxygen-cursor-theme pgf phonon-backend-gstreamer1.0 polkit-kde-1 python-blinker python-cups python-dbus-dev python-debian python-dirspec python-gconf python-gnome2 python-gtk-vnc
  python-gtksourceview2 python-imaging python-jwt python-lzma python-oauthlib python-parsley python-pexpect python-pil python-psutil python-ptyprocess python-pyorbit python-renderpm python-reportlab
  python-reportlab-accel python-twisted python-txsocksx python-ubuntu-sso-client python-urlgrabber python-vte python-xapian rtmpdump scdaemon shared-desktop-ontologies syslinux-themes-debian
  syslinux-themes-debian-wheezy texlive-luatex torsocks tsconf ubuntu-sso-client wmctrl x11proto-core-dev x11proto-input-dev x11proto-kb-dev xfonts-mathml xorg-sgml-doctools xscreensaver-data
  xscreensaver-data-extra xscreensaver-gl xscreensaver-gl-extra xscreensaver-screensaver-bsod xserver-xorg-input-evdev-lts-wily xserver-xorg-input-mouse-lts-wily xserver-xorg-input-synaptics-lts-wily
  xserver-xorg-input-vmmouse-lts-wily xserver-xorg-input-wacom-lts-wily xserver-xorg-video-ati-lts-wily xserver-xorg-video-cirrus-lts-wily xserver-xorg-video-fbdev-lts-wily xserver-xorg-video-intel-lts-wily
  xserver-xorg-video-mach64-lts-wily xserver-xorg-video-mga-lts-wily xserver-xorg-video-neomagic-lts-wily xserver-xorg-video-nouveau-lts-wily xserver-xorg-video-openchrome-lts-wily
  xserver-xorg-video-qxl-lts-wily xserver-xorg-video-r128-lts-wily xserver-xorg-video-radeon-lts-wily xserver-xorg-video-savage-lts-wily xserver-xorg-video-siliconmotion-lts-wily
  xserver-xorg-video-sisusb-lts-wily xserver-xorg-video-tdfx-lts-wily xserver-xorg-video-trident-lts-wily xserver-xorg-video-vesa-lts-wily xserver-xorg-video-vmware-lts-wily xtrans-dev xul-ext-ubufox
Use 'sudo apt autoremove' to remove them.
The following additional packages will be installed:
  linux-image-4.4.0-124-generic linux-image-4.4.0-128-generic
Suggested packages:
  fdutils linux-doc-4.4.0 | linux-source-4.4.0 linux-tools
The following NEW packages will be installed:
  linux-image-4.4.0-124-generic linux-image-4.4.0-128-generic
0 upgraded, 2 newly installed, 0 to remove and 42 not upgraded.
87 not fully installed or removed.
Need to get 44,2 MB of archives.
After this operation, 136 MB of additional disk space will be used.
Do you want to continue? [Д/н] y
Get:1 http://ru.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-4.4.0-128-generic amd64 4.4.0-128.154 [22,1 MB]
Get:2 http://ru.archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-4.4.0-124-generic amd64 4.4.0-124.148 [22,1 MB]
Fetched 44,2 MB in 26s (1 641 kB/s)                                                                                                                                                                              
(Reading database ... 441166 files and directories currently installed.)
Preparing to unpack .../linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb ...
Examining /etc/kernel/preinst.d/
Done.
Unpacking linux-image-4.4.0-128-generic (4.4.0-128.154) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-128-generic' to '/boot/vmlinuz-4.4.0-128-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-128-generic /boot/vmlinuz-4.4.0-128-generic
Preparing to unpack .../linux-image-4.4.0-124-generic_4.4.0-124.148_amd64.deb ...
Examining /etc/kernel/preinst.d/
Done.
Unpacking linux-image-4.4.0-124-generic (4.4.0-124.148) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-4.4.0-124-generic_4.4.0-124.148_amd64.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-4.4.0-124-generic' to '/boot/vmlinuz-4.4.0-124-generic.dpkg-new': failed to write (No space left on device)
No apport report written because the error message indicates a disk full error
                                                                              dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 4.4.0-124-generic /boot/vmlinuz-4.4.0-124-generic
run-parts: executing /etc/kernel/postrm.d/zz-extlinux 4.4.0-124-generic /boot/vmlinuz-4.4.0-124-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 4.4.0-124-generic /boot/vmlinuz-4.4.0-124-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-4.4.0-128-generic_4.4.0-128.154_amd64.deb
 /var/cache/apt/archives/linux-image-4.4.0-124-generic_4.4.0-124.148_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

df 输出:

$ df -h /boot
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       237M  230M     0 100% /boot

ls -lt 输出:

$ ls -lt /boot
total 224352
drwxr-xr-x 6 root root     1024 май  1 17:20 grub
-rw------- 1 root root  7146392 май  1 17:20 vmlinuz-4.4.0-122-generic.efi.signed
-rw-r--r-- 1 root root 39641846 май  1 17:20 initrd.img-4.4.0-122-generic
-rw-r--r-- 1 root root  1251054 апр 23 20:41 abi-4.4.0-122-generic
-rw-r--r-- 1 root root   190654 апр 23 20:41 config-4.4.0-122-generic
-rw-r--r-- 1 root root      255 апр 23 20:41 retpoline-4.4.0-122-generic
-rw------- 1 root root  3898132 апр 23 20:41 System.map-4.4.0-122-generic
-rw------- 1 root root  7144464 апр 23 20:41 vmlinuz-4.4.0-122-generic
-rw-r--r-- 1 root root 39590685 апр 14 10:06 initrd.img-4.4.0-119-generic
-rw------- 1 root root  7146744 апр 14 10:01 vmlinuz-4.4.0-119-generic.efi.signed
-rw-r--r-- 1 root root 36135739 апр 14 10:00 initrd.img-4.2.0-41-generic
-rw-r--r-- 1 root root 36134198 апр 14 10:00 initrd.img-4.2.0-42-generic
-rw-r--r-- 1 root root  1251075 апр  2 21:05 abi-4.4.0-119-generic
-rw-r--r-- 1 root root   190604 апр  2 21:05 config-4.4.0-119-generic
-rw-r--r-- 1 root root     2747 апр  2 21:05 retpoline-4.4.0-119-generic
-rw------- 1 root root  3896447 апр  2 21:05 System.map-4.4.0-119-generic
-rw------- 1 root root  7144816 апр  2 21:05 vmlinuz-4.4.0-119-generic
drwxr-xr-x 3 root root     1024 июн 23  2017 extlinux
-rw------- 1 root root  6738424 дек 12  2016 vmlinuz-4.2.0-42-generic.efi.signed
-rw------- 1 root root  6736696 июл  7  2016 vmlinuz-4.2.0-41-generic.efi.signed
-rw-r--r-- 1 root root  1313590 июн 30  2016 abi-4.2.0-42-generic
-rw-r--r-- 1 root root   184934 июн 30  2016 config-4.2.0-42-generic
-rw------- 1 root root  3760051 июн 30  2016 System.map-4.2.0-42-generic
-rw------- 1 root root  6736496 июн 30  2016 vmlinuz-4.2.0-42-generic
-rw-r--r-- 1 root root  1313640 июн 24  2016 abi-4.2.0-41-generic
-rw-r--r-- 1 root root   184897 июн 24  2016 config-4.2.0-41-generic
-rw------- 1 root root  3759492 июн 24  2016 System.map-4.2.0-41-generic
-rw------- 1 root root  6734768 июн 24  2016 vmlinuz-4.2.0-41-generic
drwx------ 2 root root    12288 мар 16  2016 lost+found
-rw-r--r-- 1 root root   182704 янв 28  2016 memtest86+.bin
-rw-r--r-- 1 root root   184380 янв 28  2016 memtest86+.elf
-rw-r--r-- 1 root root   184840 янв 28  2016 memtest86+_multiboot.bin
drwxr-xr-x 3 root root     4096 янв  1  1970 efi
apt kubuntu
  • 1 个回答
  • 10993 Views
Martin Hope
ka3ak
Asked: 2018-05-26 01:24:23 +0800 CST

在 VIM 中加入一个组的所有匹配项

  • 3

我正在尝试编写一个替换命令,该命令将搜索包含至少 4 个由空格分隔的字母的文本并删除空格:

%s/\v%(([a-zA-Z])\s){3,}([a-zA-Z])/\1\2/gc

但

L i g ht

变成

ght

正如预期的那样,因为一个组仅包含g在这种情况下的最后一个匹配项。如何累积所有组的匹配\1然后加入它们?

regular-expression vim
  • 1 个回答
  • 604 Views
Martin Hope
ka3ak
Asked: 2018-05-06 00:06:06 +0800 CST

支持系统剪贴板的 VIM

  • 0

我有

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Nov 24 2016 16:44:48)

安装了apt

它不支持该clipboard选项。因此,例如,我无法通过键入将某些缓冲区内容复制到系统剪贴板"+yy。

我很好奇是否可以将我的 VIM 切换到另一个包含带有工作clipboard选项的 VIM 的存储库并更新它。如果是,那该怎么做?什么存储库,如何切换等?

ubuntu apt
  • 1 个回答
  • 1053 Views
Martin Hope
ka3ak
Asked: 2018-04-22 11:35:47 +0800 CST

为什么我必须按两次 CTRL+[ 才能在 vi 中从 VISUAL 模式返回到 NORMAL 模式?

  • 0

有没有更简单的方法可以在 vi 中返回 NORMAL 模式?

刚刚删除的答案提到了“延迟”。我只按了 CTRL+[ 一次,经过一段时间的延迟,它真的让我回到了正常模式。看来我只是不够耐心。但是,尚不清楚为什么需要这么长时间。

PS:其他模式转换非常快...

vim vi-mode
  • 1 个回答
  • 118 Views
Martin Hope
ka3ak
Asked: 2018-02-18 05:16:15 +0800 CST

vim 没有移动到预期的行

  • 0

我的最终目标是在句子分隔符上拆分文本。然而,它不应该被分成句子,而是在块中。1000 行,加上当前句子的其余部分。但在下面的实验中,为了简单起见,我只使用了 2 行。

考虑 VIM 缓冲区中的以下文本:

line 1. line 1. line 1.
line 2. line 2. line 2.
line 3. line 3. line 3.
line 4. line 4. line 4.
line 5. line 5. line 5.

执行后:

:2 | exec 'normal! )hvgg' | exec "'<,'>w /tmp/part1.txt" | exec 'normal! gvd'

结果符合预期。缓冲区包含:

line 2. line 2.
line 3. line 3. line 3.
line 4. line 4. line 4.
line 5. line 5. line 5.

但是在下一次运行之后

:2 | exec 'normal! )hvgg' | exec "'<,'>w /tmp/part2.txt" | exec 'normal! gvd'

缓冲区包含:

line 2.
line 3. line 3. line 3.
line 4. line 4. line 4.
line 5. line 5. line 5.

这里发生了什么?为什么它不移动到第二行line 3. line 3. line 3.?

但我希望以下文本保留在缓冲区中

line 3. line 3.
line 4. line 4. line 4.
line 5. line 5. line 5.
vim
  • 2 个回答
  • 139 Views
Martin Hope
ka3ak
Asked: 2018-02-08 23:17:59 +0800 CST

:set nohlsearch 不起作用

  • 0

当我用 VIM 打开一个现有会话时,set nohlsearch最后的设置~/.vimrc无效。它只有在我手动运行时才有效。我还注意到,如果我打开一个不在会话中的文件,则设置~/.vimrc会生效。如果我切换到会话中的缓冲区并运行,该设置也有效:source $MYVIMRC。

我重新创建了会话,:mksession!但没有帮助。我正在使用 VIM 7.4。

以下是~/.vimrc:

" For pre-processing books
command! Book %s/\v([Tt])heyre/\1hey're/gec | %s/\v([Ww])ont/\1on't/gec | %s/\v([Yy])oud/\1ou'd/gec | %s/\v([Nn])eednt/\1eedn't/gec | %s/\v([Ss])houldnt/\1houldn't/gec | %s/\v([Hh])asnt/\1asn't/gec | %s/\v([Cc])ant/\1an't/gec | %s/\v([Tt])hats/\1hat's/gec | %s/\v([Yy])oull/\1ou'll/gec | %s/\v([Yy])oure/\1ou're/gec | %s/\v([Yy])ouve/\1ou've/gec | %s/\v([Ii])ts/\1t's/gec | %s/\v([Dd])ont/\1on't/gec | %s/\v([Aa])rent/\1ren't/gec | %s/\v([Dd])oesnt/\1oesn't/gec | %s/\v([Dd])idnt/\1idn't/gec | %s/\v([Ii])snt/\1sn't/gec | %s/\v([Hh])eres/\1ere's/gec | %s/IDEs\C/IDE's/gec | %s/\v([Nn])onfinal/\1on-final/gec | /\v\c^(chapter|item)|\[.+\]

" Write buffer and delete it afterwards
command! Wd write|bdelete
" Format current buffer that should be an XML document
"command! FormatXml %!xmllint --format -
" Format current selection that should be an XML document
command! -range FormatXml <line1>,<line2>!xmllint --format -

" Copy current buffer contents to the system clipboard (insertion with CTRL+v). Range can be used.
command! -range CopyToClipboard <line1>,<line2>w !xclip -selection clipboard
" Copy current buffer contents to the primary clipboard (insertion with mouse wheel click or with CTRL+SHIFT+INSERT). Range can be used.
command! -range CopyToPrimary <line1>,<line2>w !xclip

" Copy visual selection to the clipboard and pass it to 'eval'
command! -range Eval <line1>,<line2>w !xclip && eval "$(xclip -o)"

" Comment/uncomment shell script
command! -range CommentShellScript <line1>,<line2>s/^/#/g
command! -range UncommentShellScript <line1>,<line2>s/\v^\s*#(.*)/\1/g

" Creates a buffer containing the output of ':browse oldfiles' command at the top
" Move cursor to the path and press ENTER
" TODO: Doesn't open files with spaces in their paths
command! Browse new +setl\ buftype=nofile | 0put =v:oldfiles | nnoremap <buffer> <CR> :e <C-r>=getline('.')<CR><CR>

" If the current line contains a file path, the file will be opened in default program
command! OpenInDefaultProgram exec(":!xdg-open '".getline(".")."'")

" If the current line contains a URL, the URL will be opened in firefox
command! OpenUrlInFirefox exec(":!firefox '".getline(".")."'")

" Remove duplicate method calls. You just want to see which methods have been called and not interested in their call order
command! BtraceUniqMethodCalls %s/\v\(.*\)//g | %sort u | !%uniq 
" Remove duplicate classes. You just want to see which classes have been used during execution
command! BtraceUniqClasses %s/\v\.[^\.]{-}\(.*\)//ge | execute 'g/\v\$[0-9]+$/de' | %sort u | %!uniq
" Remove duplicate adjacent method calls. Methods call order is kept.
"command! BtraceRemoveAdjacentDuplicateMethods %s/\v\(.*\)//ge | %!uniq (no
"line numbers)
command! BtraceRemoveAdjacentDuplicateMethods %!awk 'BEGIN {method=""} match($0,/.*\(/) { if (length(method)) { if (index($0,method) == 0) { print $0 } } else { print $0 } method =substr($0, RSTART, RLENGTH-1) }'

set ignorecase
set smartcase
set hidden
set tabstop=2 "2 spaces will be inserted when pressing TAB in INSERT mode
"set softtabstop=0 noexpandtab
set shiftwidth=2 "2 spaces will be inserted when indenting
"set wildmode=longest,list
set history=200

"highlight normal ctermfg=white ctermbg=yellow

set nocompatible
filetype plugin on
filetype indent on

" 'matchit' plugin
"set nocompatible
"filetype plugin on
runtime macros/matchit.vim

" Disable arrow keys in NORMAL mode
noremap <Up> <Nop>
noremap <Down> <Nop>
noremap <Left> <Nop>
noremap <Right> <Nop>

:map <F8> <C-E>:sleep 3500m<CR>j<F8>

function! GotoJump()
  jumps
  let j = input("Please select your jump: ")
  if j != ''
    let pattern = '\v\c^\+'
    if j =~ pattern
      let j = substitute(j, pattern, '', 'g')
      execute "normal " . j . "\<c-i>"
    else
      execute "normal " . j . "\<c-o>"
    endif
  endif
endfunction

"if $TERM_PROGRAM =~ "iTerm" works also for KDE "Konsole"
"    let &t_SI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in insert mode
"    let &t_EI = "\<Esc>]50;CursorShape=1\x7" " Vertical bar in normal mode
 "   let &t_SI = "\<Esc>]50;CursorShape=0\x7" " Block in insert mode
  "  let &t_EI = "\<Esc>]50;CursorShape=0\x7" " Block in normal mode
"endif

set nohlsearch
vim vimrc
  • 1 个回答
  • 312 Views
Martin Hope
ka3ak
Asked: 2018-01-25 12:26:50 +0800 CST

mkdir:无法创建目录:没有这样的文件或目录[重复]

  • 9
这个问题在这里已经有了答案:
为什么波浪号 (~) 不在双引号内展开? (4 个回答)
4年前关闭。

下面的命令有什么问题?

$ var1="~/Music/$(date +%d%m%y)"
$ echo "$var1"
~/Music/240118
$ mkdir "$var1"
mkdir: cannot create directory ‘~/Music/240118’: No such file or directory

然而

$ mkdir ~/Music/240118

作品。

在使用 bash 多年后,从没想过我会问这样的问题......

bash
  • 1 个回答
  • 11110 Views
Martin Hope
ka3ak
Asked: 2018-01-15 02:36:25 +0800 CST

监控麦克风并保存过滤片段

  • 2

我使用以下脚本来监控我的麦克风:

while true; do
    printf "$(AUDIODEV=hw:2,0 rec -n stat trim 0 1 2>&1 |
        awk 'BEGIN { ORS="" } /^Maximum amplitude/ { print "Max. amplitude: "$3} 
             /^Rough\s+frequency/ { print " Frequency: "$3} 
             /^Maximum\s+delta/ { print " Max. delta: "$3}')\r";
done

它记录一个 1 秒长的段,从标准输出中提取值Maximum amplitude并打印出来。Rough frequencysox

如果片段的数量或频率大于特定阈值,我可以将片段保存到文件吗?我知道我可以保存每个段然后分析它,但是写操作会太多,我想避免。

bash sox
  • 1 个回答
  • 68 Views
Martin Hope
ka3ak
Asked: 2018-01-11 05:33:24 +0800 CST

如何在 VIM 中链接外部命令?

  • 1

如果我在 VISUAL 模式下在 VIM 缓冲区中选择以下文本

f() { 
  echo "f"; 
} 
f 

然后执行

:'<,'>w !xclip | !eval "$(xclip -o)"

我明白了

/bin/bash: eval: line 3: syntax error near unexpected token `('
/bin/bash: eval: line 3: `feval f() {'

如何正确链接 2 个命令,以便第一个将 VISUAL 选择复制到系统剪贴板,第二个通过使用对其进行评估eval?

bash vim
  • 2 个回答
  • 366 Views
Martin Hope
ka3ak
Asked: 2017-12-22 21:31:25 +0800 CST

什么时候是局部变量,什么时候是全局变量?

  • -1

考虑以下两个函数:

f1() {
  if [ "$a" == "" ]; then
    a="0";
  else
    a=$(($a+1));
  fi;
  echo "$a";
}

f2() {
  echo "f1(): $($1)";
}

如果我f1多次调用a将按预期递增:

$ f1
0
$ f1
1
$ f1
2

但是,如果我f1从f2 a遗体中调用0:

$ f2 "f1"
f1(): 0
$ f2 "f1"
f1(): 0

我听说(也经历过)在函数中声明的变量是全局的。那么为什么会有这样的差异呢?这是一个特例还是我没有f1以f2正确的方式打电话?

好的,我刚刚注意到将f2定义更改为:

f2() {
  eval "$1";
}

解决了这个问题,但是知道第一种调用的目的是什么仍然很有趣$($1)。它究竟是做什么的?

我还注意到我无法将 的“返回”值分配f1给f2.

f2() {
  ...
  res=$(eval "$1");
  ...
}

res每次通话后都会一样f2 "f1"

为什么?

bash variable
  • 2 个回答
  • 287 Views
Martin Hope
ka3ak
Asked: 2017-12-08 01:23:13 +0800 CST

Skype 不再启动

  • 7

Skype 总是在 PC 启动后自动启动和登录。但今天它没有发生。不是弹出这个 Skype 登录窗口,而是要求我输入我的凭据。我进入它们,登录窗口消失了,但没有其他任何事情发生。之后我没有看到常见的东西,比如主要的 Skype 窗口、联系人等。我以为我被黑了,但没有,因为我可以在 Skype 网页上使用相同的凭据登录。然后我重复了这个过程,但从终端启动了 Skype,希望看到一些错误,但根本没有输出。skype 命令刚刚退出。

我的 Skype 版本是否仍受支持 (4.3.0.37)?我听说 Skype 今年夏天减少了支持的 Linux 版本的数量......

我的操作系统:Ubuntu 14.04.5 LTS

我的 Skype 版本是

在此处输入图像描述

ubuntu skype
  • 4 个回答
  • 6177 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve