我正在使用 simple 写入文件echo(我愿意使用其他方法)。
写入已存在的文件时,我可以让 echo 提示用户是否覆盖吗?
例如,也许像-i这样的论点会起作用?
echo -i "new text" > existing_file.txt
Run Code Online (Sandbox Code Playgroud)
期望的结果是提示用户是否覆盖...
echo -i "new text" > existing_file.txt
Do you wish to overwrite 'existing_file.txt'? y or n:
Run Code Online (Sandbox Code Playgroud) 所以,我一直在使用我的 Amazon Echo(大塔,而不是小“点”)作为蓝牙扬声器和我的 Ubuntu 笔记本电脑,没有任何问题。但几天前,它开始只显示为输入设备,根本不显示为输出设备。事实上,“Alexa”在连接到我的笔记本电脑时开始使用它的小扬声器而不是它自己的!我已经运行更新等,重新启动,断开重新连接,让 Alexa 忘记并重新与计算机配对都无济于事。
我不是 Ubuntu 的完全n00b,所以这有点令人沮丧。请帮忙?
我正在处理 Bash 脚本,并且某个变量中包含的字符串长度是我的条件之一。当前字符串是W5u7TBTzF17GGFV8DBJHvgAAAAI. 最初我通过以下帮助计算字符串长度wc -c:
$ VAR='W5u7TBTzF17GGFV8DBJHvgAAAAI'; echo "$VAR" | wc -c
28
Run Code Online (Sandbox Code Playgroud)
但我的脚本条件[[ ${#VAR} -eq 28 ]]从未通过。然后我决定一个一个地数字符。实际上字符串长度是 27 个字符,其值${#VAR}也是 27:
$ echo "${#VAR}"
27
Run Code Online (Sandbox Code Playgroud)
所以我想知道 - 这种差异来自哪里?
我得到如下 curl 命令输出
curl -s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all | jq -r '.[]|(.number|tostring)+" "+.user.login+" "+.created_at+" "+.merged_at'
Run Code Online (Sandbox Code Playgroud)
5 test 2019-09-27T11:06:23Z 2019-09-27T11:09:28Z
4 test1 2019-09-26T16:56:40Z 2019-09-26T16:57:02Z
3 test2 2019-09-26T16:54:25Z 2019-09-26T16:54:55Z
2 test3 2019-09-26T16:52:59Z 2019-09-26T16:55:19Z
1 test4 2019-09-26T16:46:52Z 2019-09-26T16:47:25Z
Run Code Online (Sandbox Code Playgroud)
我将它存储在一个变量中,并尝试通过 echo 变量将值传递给另一个命令来解析输出。但是当我尝试回显变量时,它将所有行打印为一行。
prlist=$(curl -s https://api.github.com/repos/harshavardhanc/dockerfile-ansible/pulls\?state\=all | jq -r '.[]|(.number|tostring)+" "+.user.login+" "+.created_at+" "+.merged_at')
echo $prlist
Run Code Online (Sandbox Code Playgroud)
5 test 2019-09-27T11:06:23Z 2019-09-27T11:09:28Z 4 test1 2019-09-26T16:56:40Z 2019-09-26T16:57:02Z 3 test2 2019-09-26T16:54:25Z 2019-09-26T16:54:55Z 2 test3 2019-09-26T16:52:59Z 2019-09-26T16:55:19Z1 test4 2019-09-26T16:46:52Z 2019-09-26T16:47:25Z
Run Code Online (Sandbox Code Playgroud)
如何避免这种打印在不同的行?请帮忙。
我想弄清楚“”和“ ”之间有什么区别。
当我将它们与echo它们一起使用时,它们都会给出相同的结果,
sps@sps-Inspiron-N5110:~$ echo Hello world
Hello world
sps@sps-Inspiron-N5110:~$ echo "Hello world"
Hello world
sps@sps-Inspiron-N5110:~$ echo 'Hello world'
Hello world
sps@sps-Inspiron-N5110:~$
Run Code Online (Sandbox Code Playgroud)
是否有任何特定情况我们需要使用其中一个?
谢谢。
我想将值与 0 进行比较,它告诉我它小于 0。我用过
solution=`echo $a / $b | bc -l`
Run Code Online (Sandbox Code Playgroud)
仅当“a”小于“b”时才会出现此问题。
\n不被识别为“换线”。它只是打印\n.
我的终端是 gnome 终端 3.6.2。
首先我用 echo 命令注意到它,然后用 shell 脚本。
关于为什么它不起作用的任何建议?
或者,如何将剪贴板的内容转储到文本文件中?如果可能的话,我希望这适用于实际的剪贴板,但也希望剪贴板委托给突出显示的文本,如果您可以管理它,甚至可以使用 vim。
我想如果你至少可以回应它,那么你应该能够>很容易地进入一个文件。
我正在尝试按照此处的帖子在我的设备上设置 USB 加密狗。我没有成功设置它,在追踪我的步骤时发现
echo "1c9e:9ba1" > /sys/bus/usb-serial/drivers/generic/new_id
Run Code Online (Sandbox Code Playgroud)
导致错误。我从终端运行此语句并得到以下响应
bash: echo: write error: Invalid argument
Run Code Online (Sandbox Code Playgroud)
根据此处的帖子,这意味着该设备未实现 WRITE 方法。
想知道是否有办法让 echo 命令工作,以便我可以让我的 USB 调制解调器工作。
我正在尝试在 sudo 上使用 -S stdin arg 。
我试过这个:
echo 'mypass' | sudo -S cat /etc/shadow
Run Code Online (Sandbox Code Playgroud)
和
echo 'mypass\n' | sudo -S cat /etc/shadow
Run Code Online (Sandbox Code Playgroud)
正如手册页建议添加换行符一样。
两者都行不通。怎么了?