小编Tak*_*Tak的帖子

循环文本文件 shell 脚本

我有一个目录中的文件列表和一组对应于另一个目录中每个文件的 jpeg。我需要遍历所有文件,并为每个文件名确定目标目录。

例如,如果我有三个名为foo.txt,bar.txtbaz.txtin 的文本文件/home/userA/folder/,则相应的 jpeg 将在/home/userA/folder2/foo/,/home/userA/folder2/bar/和 中/home/userA/folder2/baz/

我编写了一个脚本,它应该遍历所有 txt 文件并获取相应的目标目录,但它给了我一个错误:

bash: /home/userA/folder/File1.txt: syntax error: operand expected (error token is "/home/userA/folder/File1.txt")`
Run Code Online (Sandbox Code Playgroud)

我的脚本:

bash: /home/userA/folder/File1.txt: syntax error: operand expected (error token is "/home/userA/folder/File1.txt")`
Run Code Online (Sandbox Code Playgroud)

我怎样才能解决这个问题?

bash shell-script

5
推荐指数
1
解决办法
1万
查看次数

在 shell 脚本中切换用户而不输入密码

我正在使用来自 userA. 在这个 shell 脚本的中间,我使用 切换到userB用户su,但这要求我输入密码,userB我必须通过终端手动输入密码。请问有没有办法让我可以自动输入密码,而不必留在机器旁边手动输入密码?由于这个脚本中有一个循环,我不想一直盯着终端输入密码userB。或者,如果有一种方法可以将密码放入我的 shellscript 中,这样终端就不会等待我手动输入密码?任何人都可以请教如何做到这一点?

scripting bash shell-script

4
推荐指数
1
解决办法
6973
查看次数

更改共享驱动器的所有权

我有一台本地连接到我的 linux 机器的 Windows 机器。windows机器上有一个共享文件夹,我使用sudo mount -t cifs -o username=myuser //xxx.xxx.xx.xx/myfolder /mnt/windowsshare/它安装在我的linux机器上,它安装成功,我可以看到文件和文件夹。

现在的问题是我试图在已安装的共享中创建一个文件夹,但我不能。我检查了挂载文件夹的权限,它说

“您不是所有者,因此您无法更改这些权限”

如下所示:

在此处输入图片说明

我试过运行sudo chmod -R 777 /mnt/windowsharesudo chown -R isa /mnt/windowshare但它说 chmod:

更改“/mnt/windowshare/.?00000002202011111110e5(和许多其他字符)”的权限:没有这样的文件或目录

然后我使用ctrl+停止命令c

有什么建议我可以控制对我的 linux 机器上这个文件夹的访问吗?

permissions chmod mount chown shared-folders

2
推荐指数
1
解决办法
9074
查看次数

在命令中自动获取 uid 和 gid

我使用下面的命令挂载 CIFS 共享,但我想在同一命令中自动获取 UID 和 GID,这样我就不必每次mount在不同的机器上手动输入它。任何建议如何?

$ sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=<user>,gid=<group> \
   //server-address/folder /mount/path/on/ubuntu
Run Code Online (Sandbox Code Playgroud)

terminal mount cifs

0
推荐指数
1
解决办法
239
查看次数

.bashrc 语法错误:文件意外结束

每次运行终端时,我都会收到此错误消息“.bashrc 语法错误:文件意外结束”

所以我开始评论它的一部分以了解问题,我猜它在下面的 if 条件中。我想知道如何编辑它才能工作?

if ("1" == "$?LD_LIBRARY_PATH") then
        if ("$LD_LIBRARY_PATH" !~ */usr/local/iscir/lib*) then
                export LD_LIBRARY_PATH /usr/local/iscir/lib:$LD_LIBRARY_PATH
        endif
else
        export LD_LIBRARY_PATH /usr/local/iscir/lib
endif
Run Code Online (Sandbox Code Playgroud)

我试过这个,但没有像

if ["1" == "$?LD_LIBRARY_PATH"]; then
        if ["$LD_LIBRARY_PATH" !~ */usr/local/iscir/lib*]; then
                export LD_LIBRARY_PATH /usr/local/iscir/lib:$LD_LIBRARY_PATH
        fi
else
        export LD_LIBRARY_PATH /usr/local/iscir/lib
fi
Run Code Online (Sandbox Code Playgroud)

bash bashrc

-3
推荐指数
1
解决办法
1417
查看次数