我创建了一个安装了一些应用程序的 bash 脚本并编写了一个 .conf 文件。我希望我的 bash 脚本为我创建文件,这样我就可以运行该文件并进行设置。有没有比这更好的方法,或者我是否以最好的方式做到了。只是想知道我还有什么其他选择。
注意:该文件确实有效
if [ ! -e ~/.conf/file/path ]; then
touch ~/.conf/file/path
echo "
long
conf
list
here
..." >> ~/.conf/file/path
fi
Run Code Online (Sandbox Code Playgroud) 当我在终端中输入一些命令并通过键入检查该命令是否有效时
echo #?
Run Code Online (Sandbox Code Playgroud)
它不打印任何类型的整数值?
我的系统有问题吗?我正在使用 Ubuntu 14.04。
我已经在华硕 TP200SA 上使用 Ubuntu 16.04 LTS 一周了,在拨打 Skype 电话后,我意识到 Windows 的功能现在已经消失了。我的笔记本电脑在硬件方面有一个立体声麦克风,但声音质量和缺乏功能对于库存驱动程序来说真的很糟糕。是否可以安装真正的 Realtek 驱动器来解决此问题?我在 Linux 上真的很糟糕,我希望有人能用基本的方式解释我。
谢谢!
我想编写一个 bash 脚本,它接受包含特殊字符.、..和的一个或多个用法的文件规范作为输入参数~。我希望我的脚本的输出能够回显 Bash 对我的脚本的完整路径解释。
这是我尝试过的脚本:
a=$(ls -l -o -g "${1}" | cut --delimiter=' ' --fields=1-6 --complement -)
echo "\\"${a}\\""
Run Code Online (Sandbox Code Playgroud)
如果我发出命令:myscript ~/.local/../.profile
返回的结果是:/home/OldManK/.local/../.profile。但我想要:/home/OldManK/.profile。
另一个例子:myscript ~/./.profilereturn: /home/OldManK/./.profile,但是,我想要:/home/OldManK/.profile。
另一个(从 执行/home/OldManK/.local):myscript ../.profile返回:../.profile,但是,我想要:/home/OldManK/.profile。
请问还有其他方法吗?
例如,如果您在主目录中并键入ls *,您将列出所有目录,并在列出的目录名称下方,列出它包含的文件。另一方面,如果您键入echo *该命令将只列出目录,而不是目录和它们拥有的内容。这是为什么?
当我们需要在echo命令中使用转义序列字符时,我们必须使用该-e选项。喜欢
echo -e "Enter your name : \c"
Run Code Online (Sandbox Code Playgroud)
但是当我们在 shell 程序(.sh 文件)中包含这种语句时,它会产生一个神秘的错误。它打印
-e Enter your name :
Run Code Online (Sandbox Code Playgroud)
它不需要-e带有 echo 命令的选项,就像我们这样写一样
echo "Enter your name : \c"
Run Code Online (Sandbox Code Playgroud)
它显示没有错误的输出,但这在 shell 中不起作用。
那是什么原因呢?我正在使用 bash shell 和 Ubuntu 15.04 版本。
当我用 打印出一个文件的内容时echo $(cat /path/to/filename),它也会列出我的文件和方向。但是当我使用printf "$(cat /path/to/filename)\n"它时效果很好。
我也尝试将它保存到一个变量中content='cat /path/to/filename'(也content=$(cat /path/to/filename),然后打印 by echo $content,但我得到了相同的结果(列出文件和方向)。
我想将文件的内容存储到变量中,并将变量作为下一个命令的输入传递到我的脚本中。
请注意,我的文件的内容中有特殊字符*。
在终端上,打字echo -n 根本不会输出任何东西,如果echo没有参数,那么为什么使用参数-n在echo中根本没有任何作用?注意:做类似的事情echo nil -n nil会工作并输出nil -n nil,所以如果 echo 输出所有内容,那么为什么不输出-n,它应该输出-n什么都不做。
这是我尝试运行的命令:
sudo sh -c echo deb "https://hub.unity3d.com/linux/repos/deb stable main" > /etc/apt/sources.list.d/unityhub.list'
Run Code Online (Sandbox Code Playgroud)
我正在尝试安装 Unity 来开发游戏。这个命令应该让我的电脑识别存储库。该命令不断返回答案E: Unable to locate package unityhub
我该如何解决?
我开始学习 Bash 脚本。我有一个问题。下面的代码工作正常,
Echo "Here is your current directory: "
pwd
Run Code Online (Sandbox Code Playgroud)
但是如果我想让 pwd 的结果与解释字符串写在同一行呢?怎么做?谢谢。
它写在手册中,/n它将把 echo 命令的输出拆分到下一行。我试过:
echo -e 'hello /n world'
hello /n world
Run Code Online (Sandbox Code Playgroud)
期待下一行出现“世界”。我失败了。
echo ×11
command-line ×6
bash ×4
scripts ×4
apt ×1
ls ×1
microphone ×1
noise ×1
repository ×1
sound ×1
unity ×1
wildcards ×1