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-332496

Just Khaithang's questions

Martin Hope
Just Khaithang
Asked: 2021-10-20 01:23:57 +0800 CST

bash数组表现得很奇怪

  • 1

我在 /tmp 下有两个文件夹。

从终端:

ls -d /tmp/firefox-*

/tmp/firefox-sy2vakcj.default-esr-charlie-cache
/tmp/firefox-sy2vakcj.default-esr-charlie-profile

或者

compgen -G /tmp/firefox-*

/tmp/firefox-sy2vakcj.default-esr-charlie-cache
/tmp/firefox-sy2vakcj.default-esr-charlie-profile

我也可以将输出存储在一个数组中:

arr=( $(ls -d /tmp/firefox-*) )
echo $arr
tmp/firefox-sy2vakcj.default-esr-charlie-cache  /tmp/firefox-sy2vakcj.default-esr-charlie-profile
 
echo $arr[1] 
tmp/firefox-sy2vakcj.default-esr-charlie-cache

echo $arr[2]
/tmp/firefox-sy2vakcj.default-esr-charlie-profile

到目前为止,一切都很好。

但是如果我从脚本中尝试同样的事情:

    ...
    ... 
    arr=( "$(ls -d /tmp/firefox-*)" ) ||( echo "directory doesn't exist" && exit 1)
    #arr=( "$(compgen -G /tmp/firefox-*)" ) ||( echo "directory doesn't exist" && exit 1)
    echo "this is a test for arr[1]: $arr[1]"
    echo "this is a test for arr[2]: $arr[2]"
    ...
 

我得到输出:

从脚本:

这是ls -d输出:

+ arr=("$(ls -d /tmp/firefox-*)")
++ ls -d '/tmp/firefox-*'
ls: cannot access '/tmp/firefox-*': No such file or directory
+ echo 'directory doesn'\''t exist'
directory doesn't exist

对于compgen -G,这是输出:

this is a test for arr[1]: /tmp/firefox-sy2vakcj.default-esr-charlie-cache
/tmp/firefox-sy2vakcj.default-esr-charlie-profile[1]
this is a test for arr[2]: /tmp/firefox-sy2vakcj.default-esr-charlie-cache
/tmp/firefox-sy2vakcj.default-esr-charlie-profile[2]

我的问题:

1.为什么 glob 没有在命令的 subshel​​l 中扩展 ls -d?

2.使用compgen -G,数组中的值是如何存储的?输出似乎数组中的每个条目都存储目录条目和第二个具有自己的索引数组的条目?

3.两个命令的终端输出是否与脚本不同,还是我遗漏了什么?

bash shell-script
  • 1 个回答
  • 95 Views
Martin Hope
Just Khaithang
Asked: 2020-03-06 10:54:43 +0800 CST

从文件名的开头删除单个字符

  • 0

文件名:

_10_-_Overriding_or_customizing_the_rest_end_point-rkkfgI502f0.mp4
_11_-_Expose_ids_in_json_response-CrDXtLfiZos.mp4
_12_-_Create_angular_8_project_using_Angular_CLI-kSXkW1hF0KU.mp4
_13_-_Create_a_model_class_for_Book_entity-Hfm3da1Ze8E.mp4
_14_-_Display_the_list_of_books_in_html_table_with_hard-coded_values-b5R8CsMrOO4.mp4
_15_-_Create_a_new_book-list_component_and_display_the_book_images-Tto3r229fFA.mp4
_16_-_Make_a_HTTP_GET_request_to_the_Spring_boot_application-98RfVQ9Z3ZM.mp4
_17_-_Understanding_the_Observable_and_Observer-NKLirs5SFYk.mp4
_18_-_Call_a_service_method_to_get_the_book_array-yQ34aPdH1_0.mp4
_19_-_Fix_the_error_CORS_policy_and_display_the_data_in_html_table-YSEAdODxMfE.mp4
_1_-_Course_Introduction-b4pjjftApmY.mp4
_20_-_Replace_the_blank_images_with_real_images-fut1f40FHo4.mp4
_2_-_Setup_the_development_environment-RbUGvRAUpSM.mp4
_3_-_Setup_the_MySQL_database-D3krImBhofo.mp4
_4_-_Create_repository_in_Github_and_add_it_to_Eclipse_IDE-MAkVtB_MhzI.mp4
_5_-_Create_spring_boot_project_using_spring_initializer-GsmqGxEv6rg.mp4
_6_-_Configure_application_properties_and_commit_changes_to_github-HqDZKih-Ehk.mp4
_7_-_Create_an_entity_class_for_book_table-pfxt3BeU_e0.mp4
_8_-_Create_an_entity_class_for_book_table-eg1pJJLAzAQ.mp4
_9_-_Create_rest_repositories_for_book_and_category_entity-w7vFTSCWCOM.mp4

如何_从文件名的开头删除单个字符?

rename file-management
  • 2 个回答
  • 59 Views
Martin Hope
Just Khaithang
Asked: 2020-02-29 15:20:42 +0800 CST

从输入文件(播放列表)中切片具有任意搜索时间的视频

  • 0

示例:播放列表文件的内容:

(0:00:00) Abcde efgh ijk
(0:04:28) bcdea gefgh idjk
(0:17:00) qbecde efgh ijk
(0:27:40) hebcde efgh ijk
(0:35:03) Abeds esdh dfk
(0:49:16) dfhks ierkld sls
(0:58:26) dhekd sdoemc ks
(1:09:40) whdjoc dlf fg
...

我正在寻找一种通过从播放列表文件中获取和输出文件名参数来切片视频的-ss方法-t。

ffmpeg -ss "$1" -i "$3" -to "$2" -c copy -r 30 -c:v libx264rgb -crf 0 -preset ultrafast -c:a aac  "$4".mp4

开头的时间戳成为 -ss 参数,文本成为输出文件的名称,下一行的时间戳成为 -t 参数。

shell-script ffmpeg
  • 2 个回答
  • 59 Views
Martin Hope
Just Khaithang
Asked: 2020-02-25 06:01:40 +0800 CST

从播放列表文件中批量重命名视频文件

  • 2

目录中的文件:

$ ls | sort -n

1.mp4
2 .mp4
3 .mp4
4 .mp4
5 .mp4
6 .mp4
7 .mp4
8 .mp4
9 .mp4
10 .mp4

播放列表文件中的文件名列表:

$ cat playlist.m3u8

1- Introduction-OxIDLw0M-m0.mp4
2 - How React Works-pKYiKbf7sP0.mp4
3 - React Setup (with CDN)-SAX6RMEFVM4.mp4
4 - React Components-Fis_Q3rkgtM.mp4
5 - State-yuN4EMjR4K4.mp4
6 - React Dev Tools--XQ2zCdxw0I.mp4
7 - DOM Events--ZB8I2PmiOw.mp4
8 - Changing State (and 'this')-XJzDF9bj368.mp4
9 - Intro to Forms-BVbdZ1133JU.mp4
10 - Create React App-5QwNCX3UbXc.mp4

文件名以数字开头。如何通过播放列表文件中列出的名称及其相应的数字重命名目录中的文件,结果将是:

$ ls | sort -n


1- Introduction-OxIDLw0M-m0.mp4
2 - How React Works-pKYiKbf7sP0.mp4
3 - React Setup (with CDN)-SAX6RMEFVM4.mp4
4 - React Components-Fis_Q3rkgtM.mp4
5 - State-yuN4EMjR4K4.mp4
6 - React Dev Tools--XQ2zCdxw0I.mp4
7 - DOM Events--ZB8I2PmiOw.mp4
8 - Changing State (and 'this')-XJzDF9bj368.mp4
9 - Intro to Forms-BVbdZ1133JU.mp4
10 - Create React App-5QwNCX3UbXc.mp4
shell-script rename
  • 3 个回答
  • 71 Views
Martin Hope
Just Khaithang
Asked: 2020-02-25 03:33:07 +0800 CST

剥离部分文件名

  • 0

示例文件:

1_this is_file one-xhdjsnsk.mp4
2_this_is file two-hdksbdg.mp4
3_this is_file three-hsislnsm.mp4
4_this is file four-gwywkkd.mp4

如何将所有内容从'-'to剥离'.',结果将如下所示:

1_this is_file one.mp4
2_this_is file two.mp4
3_this is_file three.mp4
4_this is file four.mp4
bash python
  • 1 个回答
  • 25 Views
Martin Hope
Just Khaithang
Asked: 2019-04-09 10:05:35 +0800 CST

运行“update-grub”时,Ubuntu 18.04 服务器安装卡在 66%

  • 5

我正在尝试安装 Ubuntu 服务器,但在更新 grub 时它总是卡在最后阶段。我取消了该过程并重新启动了我的系统,它把我带到了 grub 命令提示符grub>。

我尝试从提示手动启动:

root=(hd1,gpt5)       # Ubuntu root partition
linux   /boot/vmlinuz-something-   root=/dev/sda5
initrd    /boot/initramfs-something-
boot
<enter>

在滚动一些引导消息后,它使我掉入了

Busybox v1.27.2 (Ubuntu 1:1.27.2-2ubuntu3) built-in. shell (ash) 

initramfs>提示。从这里我做了一个exit 它向我展示了内核恐慌!有以下两个提示。

mount: mounting/says on /root/says failed : No such file or directory
mount: mounting /process on /root/process failed: No such file or directory
ubuntu grub2
  • 6 个回答
  • 9203 Views
Martin Hope
Just Khaithang
Asked: 2019-04-07 14:00:05 +0800 CST

在 Arch Linux 中安装 .deb (Brackets.Release.1.13.64-bit.deb) 包

  • 0

最新版本的 Brackets (v1.13) 在 AUR 中不可用。于是我从官网下载了官方的.deb包。现在我该如何安装它?我必须写一个 PKGBUILD 吗?我不知道它的依赖和所有。我已经用 Debtap 将它转换为一个 arch 包。但pacman -U <Convertedpackage.tar.xz>会引发以下无法解决的依赖关系:

     warning: cannot resolve "libudev>=147", a dependency of "brackets"
     warning: cannot resolve "lsb-base>=3.2", a dependency of "brackets" 

我该怎么办?

arch-linux pacman
  • 1 个回答
  • 2584 Views
Martin Hope
Just Khaithang
Asked: 2019-04-07 01:22:27 +0800 CST

操作系统安装后为 /home 添加(已经创建的)分区

  • 1

我做了一个单独的分区/home,但是在安装过程中我忘记挂载它,因此在 fstab 中没有输入任何条目。

我在根目录下的分区中拥有所有内容(而不是交换和 efi 系统分区)。我意识到我做了什么,很晚,那时我已经安装了软件包并在主目录中写入了数据。

现在我想知道的是“有没有办法将我的主目录移动到一个单独的分区而不会丢失任何数据?”

我正在考虑做一些事情,比如将根目录挂载,然后从 liveUSB/mnt挂载一个新分区(用于主目录),然后生成 fstab。/mnt/home

但我有 79% 的把握这会清除我的主目录。

规格:Arch Linux x86_64 最新内核 (5.0.4)

partition fstab
  • 1 个回答
  • 456 Views
Martin Hope
Just Khaithang
Asked: 2019-02-17 09:20:46 +0800 CST

无法在不杀死 bash 的情况下卸载驱动器 [重复]

  • 1
这个问题在这里已经有了答案:
Umount 上的繁忙设备 6 个答案
umount /home 不起作用 7 个答案
在同一 shell 脚本中安装和卸载会导致错误 2 个答案
3年前关闭。

我不知道它是否正常,但是当我通过命令行挂载文件系统(ext4 分区、USB、SD 卡等)时,我无法卸载它,因为它说 target is busy

它是使用/访问它的 bash 进程。所以我必须先杀死它,然后才能卸载驱动器。如您所料,当我终止 bash 进程时,终端会关闭。我必须重新打开终端并卸载驱动器。正常吗?我不记得上次我卸下某些东西时发生过这种情况。

bash usb-drive
  • 1 个回答
  • 699 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