read -r -p "put an option: " option
echo $option
Run Code Online (Sandbox Code Playgroud)
这有效,但 shellcheck 给了我:
In POSIX sh, read -p is undefined.
Run Code Online (Sandbox Code Playgroud)
如何以符合 posix 的方式通过提示获取用户输入到变量中?
我对 Linux 相当陌生,目前我正在尝试运行以下命令,
\nfind ~ -name apt.no\nRun Code Online (Sandbox Code Playgroud)\napt.no我正在另一个列为 的目录中查找montrose-files。
shell 没有响应,它只是创建一个新行。谁能向我解释一下为什么这甚至没有产生结果?
\nbbcharlieca@myvm:~$ find ~ -name apt.no\nbbcharlieca@myvm:~$ \xe2\x96\x88\nRun Code Online (Sandbox Code Playgroud)\n
该echo命令根据传递给它的表达式输出不同的结果。工作目录是/home/etc
$ echo .*/
/ ../ .cache/ .config/ .gnupg/ .local/ .mozilla/ .ssh/
$ echo ./*
./Desktop ./Documents ./Downloads ./Music ./Pictures ./Public ./snap ./Templates ./Videos
$ echo .*/*
.cache/event-sound-cache.tdb.d410907cf15246578458d0ad7919eb5e.x86_64-pc-linux-gnu .cache/evolution .cache/fontconfig .cache/gnome-screenshot .cache/gnome-software .cache/gstreamer-1.0 .cache/ibus .cache/ibus-table .cache/libgweather .cache/mesa_shader_cache .cache/mozilla .cache/thumbnails .cache/ubuntu-report .cache/update-manager-core .cache/wallpaper .config/dconf .config/enchant .config/eog .config/evolution .config/gedit .config/gnome-initial-setup-done .config/gnome-session .config/goa-1.0 .config/gtk-3.0 .config/ibus .config/nautilus .config/pulse .config/rclone .config/update-notifier .config/user-dirs.dirs .config/user-dirs.locale ./Desktop ./Documents ./Downloads .gnupg/private-keys-v1.d .gnupg/pubring.kbx .gnupg/trustdb.gpg .local/share .mozilla/extensions .mozilla/firefox .mozilla/systemextensionsdev ./Music ../ec ./Pictures ./Public ./snap ./Templates ./Videos
$ echo …Run Code Online (Sandbox Code Playgroud) 因此,我正在从事的项目使用非系统目录来保存代码使用的一些 DLL。我不想将它们放在系统目录中,因此可执行文件设置了一个 rpath 来查找 DLL。然而,随着越来越多的库被添加,现在有 DLL 依赖于该目录中的其他 DLL。
这些库无法找到它们所依赖的 DLL,因为它们不位于链接器正在查找的目录中,例如系统目录。
有没有办法让 DLL 搜索这个特定的非系统目录?比如rpath?图书馆是如何做到这一点的?该项目使用的构建系统是 CMake(如果这有助于回答)。
这个答案不起作用,因为库中没有 rPath 标签: https: //unix.stackexchange.com/a/272286/4193
我考虑过使用LD_LIBRARY_PATH, 这很有效,但打字很烦人,而且让其他人使用该应用程序也不是那么好。如果有办法将rPath标签添加到库中,那将是最好的选择。
感谢指向以前的相关问题和答案。
我有一行由空格分隔的数字。
read var
sum=0
for x in $var; do ...
#add numbers together
$((sum += x))
done
Run Code Online (Sandbox Code Playgroud)
我需要打印的值是一个绝对数字
我还有一个问题。我试图获得绝对数字的格式。我正在做的任何事情都不起作用。我读到了
abs(){
number
}
Run Code Online (Sandbox Code Playgroud)
应该给我这个,但它似乎不起作用。此外,如果这确实有效,您将在哪里进行循环?
有人可以帮我整理文件吗?我想根据下面的示例使用 awk 跳过每三行。
当前文件:
a
a
a
a
b
b
b
b
c
c
c
c
Run Code Online (Sandbox Code Playgroud)
期望的输出:
a
b
c
Run Code Online (Sandbox Code Playgroud) 我需要把它hello123456789变成567usingsed来删除前九个字符和最后两个字符。
我一直在寻找一个命令,只是找不到一个我尝试了几种语言来执行一个函数来执行它但没有运气。
我运行了命令apt-get install squid并收到以下消息:
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), are you root?
Run Code Online (Sandbox Code Playgroud)
看起来我需要成为 root 才能安装软件包。有没有办法做到这一点sudo?
我正在为一个类制作一个脚本,该脚本应该要求您输入两个整数,然后要求您选择 a / s / m / d 进行加、减、乘或除。它还将确保您输入了一个整数和一个有效的选项,但我稍后会处理这个问题。现在这是我所拥有的:
#!/bin/bash
echo "Please input a whole number"
read num1
echo "Please input another whole number"
read num2
echo "Please input funtion: [a] for addition, [s] for subtraction, [m] for multiply, or [d] for divide"
read func
if [ "$func" -eq "a" ]; then
echo $((num1 + num2))
fi
if [ "$func" -eq "s" ]; then
echo $((num1 - num2))
fi
if [ "$func" -eq "m" ]; then
echo $((num1 * num2)) …Run Code Online (Sandbox Code Playgroud) 我有大量的txt文件。每个txt文件的格式与此类似
200 0.2 0.1 0.5 0.4
500 0.4 0.9 0.9 0.1
Run Code Online (Sandbox Code Playgroud)
我试图删除每个 txt 文件中第一个字段值大于 400 的每一行。因此上面的文件现在应该只包含以下内容:
200 0.2 0.1 0.5 0.4
Run Code Online (Sandbox Code Playgroud)
代码
for file in *.txt; do
echo "$(awk '{ if ($1 < 401) print }' *.txt)" > tmp && mv tmp *.txt
done
rm -f tmp
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为它将所有文件移动到下一个文本文件。